package agenPro;

 
//--AgentGen BEGIN=_BEGIN
//--AgentGen END

import org.snmp4j.smi.*;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.agent.*;
import org.snmp4j.agent.mo.*;
import org.snmp4j.agent.mo.snmp.*;
import org.snmp4j.agent.mo.snmp.smi.*;
import org.snmp4j.agent.request.*;
import org.snmp4j.log.LogFactory;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.agent.mo.snmp.tc.*;


//--AgentGen BEGIN=_IMPORT
//--AgentGen END

public class IfMib 
//--AgentGen BEGIN=_EXTENDS
//--AgentGen END
implements MOGroup 
//--AgentGen BEGIN=_IMPLEMENTS
//--AgentGen END
{

  private static final LogAdapter LOGGER = 
      LogFactory.getLogger(IfMib.class);

//--AgentGen BEGIN=_STATIC
//--AgentGen END

  // Factory
  private MOFactory moFactory = 
    DefaultMOFactory.getInstance();

  // Constants 

  /**
   * OID of this MIB module for usage which can be 
   * used for its identification.
   */
  public static final OID oidIfMib =
    new OID(new int[] { 1,3,6,1,2,1,31 });

  // Identities
  // Scalars
  public static final OID oidIfNumber = 
    new OID(new int[] { 1,3,6,1,2,1,2,1,0 });
  public static final OID oidIfTableLastChange = 
    new OID(new int[] { 1,3,6,1,2,1,31,1,5,0 });
  public static final OID oidIfStackLastChange = 
    new OID(new int[] { 1,3,6,1,2,1,31,1,6,0 });
  // Tables

  // Notifications
  public static final OID oidLinkDown =
    new OID(new int[] { 1,3,6,1,6,3,1,1,5,3 });   
  public static final OID oidTrapVarIfIndex =
    new OID(new int[] { 1,3,6,1,2,1,2,2,1,1 });
  public static final OID oidTrapVarIfAdminStatus =
    new OID(new int[] { 1,3,6,1,2,1,2,2,1,7 });
  public static final OID oidTrapVarIfOperStatus =
    new OID(new int[] { 1,3,6,1,2,1,2,2,1,8 });

  public static final OID oidLinkUp =
    new OID(new int[] { 1,3,6,1,6,3,1,1,5,4 });   


  // Enumerations

  public static final class IfAdminStatusEnum {
    /* -- ready to pass packets */
    public static final int up = 1;
    public static final int down = 2;
    /* -- in some test mode */
    public static final int testing = 3;
  }
  public static final class IfOperStatusEnum {
    /* -- ready to pass packets */
    public static final int up = 1;
    public static final int down = 2;
    /* -- in some test mode */
    public static final int testing = 3;
    /* -- status can not be determined
-- for some reason. */
    public static final int unknown = 4;
    public static final int dormant = 5;
    /* -- some component is missing */
    public static final int notPresent = 6;
    /* -- down due to state of
-- lower-layer interface(s) */
    public static final int lowerLayerDown = 7;
  }
  public static final class IfLinkUpDownTrapEnableEnum {
    public static final int enabled = 1;
    public static final int disabled = 2;
  }
  public static final class IfTestStatusEnum {
    public static final int notInUse = 1;
    public static final int inUse = 2;
  }
  public static final class IfTestResultEnum {
    /* -- no test yet requested */
    public static final int none = 1;
    public static final int success = 2;
    public static final int inProgress = 3;
    public static final int notSupported = 4;
    /* -- due to state of system */
    public static final int unAbleToRun = 5;
    public static final int aborted = 6;
    public static final int failed = 7;
  }
  public static final class IfRcvAddressTypeEnum {
    public static final int other = 1;
    public static final int _volatile = 2;
    public static final int nonVolatile = 3;
  }



  // TextualConventions
  private static final String TC_MODULE_IANAIFTYPE_MIB = "IANAifType-MIB";
  private static final String TC_MODULE_IF_MIB = "IF-MIB";
  private static final String TC_MODULE_SNMPV2_TC = "SNMPv2-TC";
  private static final String TC_TIMESTAMP = "TimeStamp";
  private static final String TC_TESTANDINCR = "TestAndIncr";
  private static final String TC_PHYSADDRESS = "PhysAddress";
  private static final String TC_AUTONOMOUSTYPE = "AutonomousType";
  private static final String TC_TRUTHVALUE = "TruthValue";
  private static final String TC_IANAIFTYPE = "IANAifType";
  private static final String TC_DISPLAYSTRING = "DisplayString";
  private static final String TC_OWNERSTRING = "OwnerString";
  private static final String TC_ROWSTATUS = "RowStatus";
  private static final String TC_INTERFACEINDEX = "InterfaceIndex";

  // Scalars
  private MOScalar<Integer32> ifNumber;
  private MOScalar<TimeTicks> ifTableLastChange;
  private MOScalar<TimeTicks> ifStackLastChange;

  // Tables
  public static final OID oidIfEntry = 
    new OID(new int[] { 1,3,6,1,2,1,2,2,1 });

  // Index OID definitions
  public static final OID oidIfIndex =
    new OID(new int[] { 1,3,6,1,2,1,2,2,1,1 });

  // Column TC definitions for ifEntry:
  public static final String tcModuleIfMib = "IF-MIB";
  public static final String tcDefInterfaceIndex = "InterfaceIndex";
  public static final String tcModuleSNMPv2Tc = "SNMPv2-TC";
  public static final String tcDefDisplayString = "DisplayString";
  public static final String tcModuleIANAifTypeMib = "IANAifType-MIB";
  public static final String tcDefIANAifType = "IANAifType";
  public static final String tcDefPhysAddress = "PhysAddress";
    
  // Column sub-identifer definitions for ifEntry:
  public static final int colIfIndex = 1;
  public static final int colIfDescr = 2;
  public static final int colIfType = 3;
  public static final int colIfMtu = 4;
  public static final int colIfSpeed = 5;
  public static final int colIfPhysAddress = 6;
  public static final int colIfAdminStatus = 7;
  public static final int colIfOperStatus = 8;
  public static final int colIfLastChange = 9;
  public static final int colIfInOctets = 10;
  public static final int colIfInUcastPkts = 11;
  public static final int colIfInNUcastPkts = 12;
  public static final int colIfInDiscards = 13;
  public static final int colIfInErrors = 14;
  public static final int colIfInUnknownProtos = 15;
  public static final int colIfOutOctets = 16;
  public static final int colIfOutUcastPkts = 17;
  public static final int colIfOutNUcastPkts = 18;
  public static final int colIfOutDiscards = 19;
  public static final int colIfOutErrors = 20;
  public static final int colIfOutQLen = 21;
  public static final int colIfSpecific = 22;

  // Column index definitions for ifEntry:
  public static final int idxIfIndex = 0;
  public static final int idxIfDescr = 1;
  public static final int idxIfType = 2;
  public static final int idxIfMtu = 3;
  public static final int idxIfSpeed = 4;
  public static final int idxIfPhysAddress = 5;
  public static final int idxIfAdminStatus = 6;
  public static final int idxIfOperStatus = 7;
  public static final int idxIfLastChange = 8;
  public static final int idxIfInOctets = 9;
  public static final int idxIfInUcastPkts = 10;
  public static final int idxIfInNUcastPkts = 11;
  public static final int idxIfInDiscards = 12;
  public static final int idxIfInErrors = 13;
  public static final int idxIfInUnknownProtos = 14;
  public static final int idxIfOutOctets = 15;
  public static final int idxIfOutUcastPkts = 16;
  public static final int idxIfOutNUcastPkts = 17;
  public static final int idxIfOutDiscards = 18;
  public static final int idxIfOutErrors = 19;
  public static final int idxIfOutQLen = 20;
  public static final int idxIfSpecific = 21;

  private MOTableSubIndex[] ifEntryIndexes;
  private MOTableIndex ifEntryIndex;
  
  private MOTable<IfEntryRow,
                  MOColumn,
                  MOTableModel<IfEntryRow>> ifEntry;
  private MOTableModel<IfEntryRow> ifEntryModel;
  public static final OID oidIfXEntry = 
    new OID(new int[] { 1,3,6,1,2,1,31,1,1,1 });

  // Index OID definitions
  //public static final OID oidIfIndex =
  //  new OID(new int[] { 1,3,6,1,2,1,2,2,1,1 });

  // Column TC definitions for ifXEntry:
  public static final String tcDefTruthValue = "TruthValue";
  public static final String tcDefTimeStamp = "TimeStamp";
    
  // Column sub-identifer definitions for ifXEntry:
  public static final int colIfName = 1;
  public static final int colIfInMulticastPkts = 2;
  public static final int colIfInBroadcastPkts = 3;
  public static final int colIfOutMulticastPkts = 4;
  public static final int colIfOutBroadcastPkts = 5;
  public static final int colIfHCInOctets = 6;
  public static final int colIfHCInUcastPkts = 7;
  public static final int colIfHCInMulticastPkts = 8;
  public static final int colIfHCInBroadcastPkts = 9;
  public static final int colIfHCOutOctets = 10;
  public static final int colIfHCOutUcastPkts = 11;
  public static final int colIfHCOutMulticastPkts = 12;
  public static final int colIfHCOutBroadcastPkts = 13;
  public static final int colIfLinkUpDownTrapEnable = 14;
  public static final int colIfHighSpeed = 15;
  public static final int colIfPromiscuousMode = 16;
  public static final int colIfConnectorPresent = 17;
  public static final int colIfAlias = 18;
  public static final int colIfCounterDiscontinuityTime = 19;

  // Column index definitions for ifXEntry:
  public static final int idxIfName = 0;
  public static final int idxIfInMulticastPkts = 1;
  public static final int idxIfInBroadcastPkts = 2;
  public static final int idxIfOutMulticastPkts = 3;
  public static final int idxIfOutBroadcastPkts = 4;
  public static final int idxIfHCInOctets = 5;
  public static final int idxIfHCInUcastPkts = 6;
  public static final int idxIfHCInMulticastPkts = 7;
  public static final int idxIfHCInBroadcastPkts = 8;
  public static final int idxIfHCOutOctets = 9;
  public static final int idxIfHCOutUcastPkts = 10;
  public static final int idxIfHCOutMulticastPkts = 11;
  public static final int idxIfHCOutBroadcastPkts = 12;
  public static final int idxIfLinkUpDownTrapEnable = 13;
  public static final int idxIfHighSpeed = 14;
  public static final int idxIfPromiscuousMode = 15;
  public static final int idxIfConnectorPresent = 16;
  public static final int idxIfAlias = 17;
  public static final int idxIfCounterDiscontinuityTime = 18;

  private MOTableSubIndex[] ifXEntryIndexes;
  private MOTableIndex ifXEntryIndex;
  
  private MOTable<IfXEntryRow,
                  MOColumn,
                  MOTableModel<IfXEntryRow>> ifXEntry;
  private MOTableModel<IfXEntryRow> ifXEntryModel;
  public static final OID oidIfStackEntry = 
    new OID(new int[] { 1,3,6,1,2,1,31,1,2,1 });

  // Index OID definitions
  public static final OID oidIfStackHigherLayer =
    new OID(new int[] { 1,3,6,1,2,1,31,1,2,1,1 });
  public static final OID oidIfStackLowerLayer =
    new OID(new int[] { 1,3,6,1,2,1,31,1,2,1,2 });

  // Column TC definitions for ifStackEntry:
  public static final String tcDefRowStatus = "RowStatus";
    
  // Column sub-identifer definitions for ifStackEntry:
  public static final int colIfStackStatus = 3;

  // Column index definitions for ifStackEntry:
  public static final int idxIfStackStatus = 0;

  private MOTableSubIndex[] ifStackEntryIndexes;
  private MOTableIndex ifStackEntryIndex;
  
  private MOTable<IfStackEntryRow,
                  MOColumn,
                  MOTableModel<IfStackEntryRow>> ifStackEntry;
  private MOTableModel<IfStackEntryRow> ifStackEntryModel;
  public static final OID oidIfTestEntry = 
    new OID(new int[] { 1,3,6,1,2,1,31,1,3,1 });

  // Index OID definitions
  //public static final OID oidIfIndex =
  //  new OID(new int[] { 1,3,6,1,2,1,2,2,1,1 });

  // Column TC definitions for ifTestEntry:
  public static final String tcDefTestAndIncr = "TestAndIncr";
  public static final String tcDefAutonomousType = "AutonomousType";
  public static final String tcDefOwnerString = "OwnerString";
    
  // Column sub-identifer definitions for ifTestEntry:
  public static final int colIfTestId = 1;
  public static final int colIfTestStatus = 2;
  public static final int colIfTestType = 3;
  public static final int colIfTestResult = 4;
  public static final int colIfTestCode = 5;
  public static final int colIfTestOwner = 6;

  // Column index definitions for ifTestEntry:
  public static final int idxIfTestId = 0;
  public static final int idxIfTestStatus = 1;
  public static final int idxIfTestType = 2;
  public static final int idxIfTestResult = 3;
  public static final int idxIfTestCode = 4;
  public static final int idxIfTestOwner = 5;

  private MOTableSubIndex[] ifTestEntryIndexes;
  private MOTableIndex ifTestEntryIndex;
  
  private MOTable<IfTestEntryRow,
                  MOColumn,
                  MOTableModel<IfTestEntryRow>> ifTestEntry;
  private MOTableModel<IfTestEntryRow> ifTestEntryModel;
  public static final OID oidIfRcvAddressEntry = 
    new OID(new int[] { 1,3,6,1,2,1,31,1,4,1 });

  // Index OID definitions
  //public static final OID oidIfIndex =
  //  new OID(new int[] { 1,3,6,1,2,1,2,2,1,1 });
  public static final OID oidIfRcvAddressAddress =
    new OID(new int[] { 1,3,6,1,2,1,31,1,4,1,1 });

  // Column TC definitions for ifRcvAddressEntry:
    
  // Column sub-identifer definitions for ifRcvAddressEntry:
  public static final int colIfRcvAddressStatus = 2;
  public static final int colIfRcvAddressType = 3;

  // Column index definitions for ifRcvAddressEntry:
  public static final int idxIfRcvAddressStatus = 0;
  public static final int idxIfRcvAddressType = 1;

  private MOTableSubIndex[] ifRcvAddressEntryIndexes;
  private MOTableIndex ifRcvAddressEntryIndex;
  
  private MOTable<IfRcvAddressEntryRow,
                  MOColumn,
                  MOTableModel<IfRcvAddressEntryRow>> ifRcvAddressEntry;
  private MOTableModel<IfRcvAddressEntryRow> ifRcvAddressEntryModel;


//--AgentGen BEGIN=_MEMBERS
//--AgentGen END

  /**
   * Constructs a IfMib instance without actually creating its
   * <code>ManagedObject</code> instances. This has to be done in a
   * sub-class constructor or after construction by calling 
   * {@link #createMO(MOFactory moFactory)}. 
   */
  protected IfMib() {
//--AgentGen BEGIN=_DEFAULTCONSTRUCTOR
//--AgentGen END
  }

  /**
   * Constructs a IfMib instance and actually creates its
   * <code>ManagedObject</code> instances using the supplied 
   * <code>MOFactory</code> (by calling
   * {@link #createMO(MOFactory moFactory)}).
   * @param moFactory
   *    the <code>MOFactory</code> to be used to create the
   *    managed objects for this module.
   */
  public IfMib(MOFactory moFactory) {
  	this();
    createMO(moFactory);
//--AgentGen BEGIN=_FACTORYCONSTRUCTOR
//--AgentGen END
  }

//--AgentGen BEGIN=_CONSTRUCTORS
//--AgentGen END

  /**
   * Create the ManagedObjects defined for this MIB module
   * using the specified {@link MOFactory}.
   * @param moFactory
   *    the <code>MOFactory</code> instance to use for object 
   *    creation.
   */
  protected void createMO(MOFactory moFactory) {
    addTCsToFactory(moFactory);
    ifNumber = 
      moFactory.createScalar(oidIfNumber,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Integer32());
    ifTableLastChange = 
      moFactory.createScalar(oidIfTableLastChange,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new TimeTicks());
    ifStackLastChange = 
      moFactory.createScalar(oidIfStackLastChange,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new TimeTicks());
    createIfEntry(moFactory);
    createIfXEntry(moFactory);
    createIfStackEntry(moFactory);
    createIfTestEntry(moFactory);
    createIfRcvAddressEntry(moFactory);
  }

  public MOScalar<Integer32> getIfNumber() {
    return ifNumber;
  }
  public MOScalar<TimeTicks> getIfTableLastChange() {
    return ifTableLastChange;
  }
  public MOScalar<TimeTicks> getIfStackLastChange() {
    return ifStackLastChange;
  }


  public MOTable<IfEntryRow,MOColumn,MOTableModel<IfEntryRow>> getIfEntry() {
    return ifEntry;
  }


  @SuppressWarnings(value={"unchecked"})
  private void createIfEntry(MOFactory moFactory) {
    // Index definition
    ifEntryIndexes = 
      new MOTableSubIndex[] {
      moFactory.createSubIndex(oidIfIndex, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1)    };

    ifEntryIndex = 
      moFactory.createIndex(ifEntryIndexes,
                            false,
                            new MOTableIndexValidator() {
      public boolean isValidIndex(OID index) {
        boolean isValidIndex = true;
     //--AgentGen BEGIN=ifEntry::isValidIndex
     //--AgentGen END
        return isValidIndex;
      }
    });

    // Columns
    MOColumn[] ifEntryColumns = new MOColumn[22];
    ifEntryColumns[idxIfIndex] = 
      moFactory.createColumn(colIfIndex, 
                             SMIConstants.SYNTAX_INTEGER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleIfMib,
                             tcDefInterfaceIndex);
    ifEntryColumns[idxIfDescr] = 
      moFactory.createColumn(colIfDescr, 
                             SMIConstants.SYNTAX_OCTET_STRING,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefDisplayString);
    ifEntryColumns[idxIfType] = 
      moFactory.createColumn(colIfType, 
                             SMIConstants.SYNTAX_INTEGER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleIANAifTypeMib,
                             tcDefIANAifType);
    ifEntryColumns[idxIfMtu] = 
      moFactory.createColumn(colIfMtu, 
                             SMIConstants.SYNTAX_INTEGER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfSpeed] = 
      moFactory.createColumn(colIfSpeed, 
                             SMIConstants.SYNTAX_GAUGE32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfPhysAddress] = 
      moFactory.createColumn(colIfPhysAddress, 
                             SMIConstants.SYNTAX_OCTET_STRING,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefPhysAddress);
    ifEntryColumns[idxIfAdminStatus] = 
      new Enumerated<Integer32>(colIfAdminStatus,
                     SMIConstants.SYNTAX_INTEGER,
                     moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                     (Integer32)null);
    ValueConstraint ifAdminStatusVC = new EnumerationConstraint(
      new int[] { IfAdminStatusEnum.up,
                  IfAdminStatusEnum.down,
                  IfAdminStatusEnum.testing });
    ((MOMutableColumn)ifEntryColumns[idxIfAdminStatus]).
      addMOValueValidationListener(new ValueConstraintValidator(ifAdminStatusVC));                                  
    ((MOMutableColumn)ifEntryColumns[idxIfAdminStatus]).
      addMOValueValidationListener(new IfAdminStatusValidator());
    ifEntryColumns[idxIfOperStatus] = 
      moFactory.createColumn(colIfOperStatus, 
                             SMIConstants.SYNTAX_INTEGER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfLastChange] = 
      moFactory.createColumn(colIfLastChange, 
                             SMIConstants.SYNTAX_TIMETICKS,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfInOctets] = 
      moFactory.createColumn(colIfInOctets, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfInUcastPkts] = 
      moFactory.createColumn(colIfInUcastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfInNUcastPkts] = 
      moFactory.createColumn(colIfInNUcastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfInDiscards] = 
      moFactory.createColumn(colIfInDiscards, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfInErrors] = 
      moFactory.createColumn(colIfInErrors, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfInUnknownProtos] = 
      moFactory.createColumn(colIfInUnknownProtos, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfOutOctets] = 
      moFactory.createColumn(colIfOutOctets, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfOutUcastPkts] = 
      moFactory.createColumn(colIfOutUcastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfOutNUcastPkts] = 
      moFactory.createColumn(colIfOutNUcastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfOutDiscards] = 
      moFactory.createColumn(colIfOutDiscards, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfOutErrors] = 
      moFactory.createColumn(colIfOutErrors, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfOutQLen] = 
      moFactory.createColumn(colIfOutQLen, 
                             SMIConstants.SYNTAX_GAUGE32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifEntryColumns[idxIfSpecific] = 
      moFactory.createColumn(colIfSpecific, 
                             SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    // Table model
    ifEntryModel = 
      moFactory.createTableModel(oidIfEntry,
                                 ifEntryIndex,
                                 ifEntryColumns);
    ((MOMutableTableModel<IfEntryRow>)ifEntryModel).setRowFactory(
      new IfEntryRowFactory());
    ifEntry = 
      moFactory.createTable(oidIfEntry,
                            ifEntryIndex,
                            ifEntryColumns,
                            ifEntryModel);
  }

  public MOTable<IfXEntryRow,MOColumn,MOTableModel<IfXEntryRow>> getIfXEntry() {
    return ifXEntry;
  }


  @SuppressWarnings(value={"unchecked"})
  private void createIfXEntry(MOFactory moFactory) {
    // Index definition
    ifXEntryIndexes = 
      new MOTableSubIndex[] {
      moFactory.createSubIndex(oidIfIndex, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1)    };

    ifXEntryIndex = 
      moFactory.createIndex(ifXEntryIndexes,
                            false,
                            new MOTableIndexValidator() {
      public boolean isValidIndex(OID index) {
        boolean isValidIndex = true;
     //--AgentGen BEGIN=ifXEntry::isValidIndex
     //--AgentGen END
        return isValidIndex;
      }
    });

    // Columns
    MOColumn[] ifXEntryColumns = new MOColumn[19];
    ifXEntryColumns[idxIfName] = 
      moFactory.createColumn(colIfName, 
                             SMIConstants.SYNTAX_OCTET_STRING,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefDisplayString);
    ifXEntryColumns[idxIfInMulticastPkts] = 
      moFactory.createColumn(colIfInMulticastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfInBroadcastPkts] = 
      moFactory.createColumn(colIfInBroadcastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfOutMulticastPkts] = 
      moFactory.createColumn(colIfOutMulticastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfOutBroadcastPkts] = 
      moFactory.createColumn(colIfOutBroadcastPkts, 
                             SMIConstants.SYNTAX_COUNTER32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCInOctets] = 
      moFactory.createColumn(colIfHCInOctets, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCInUcastPkts] = 
      moFactory.createColumn(colIfHCInUcastPkts, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCInMulticastPkts] = 
      moFactory.createColumn(colIfHCInMulticastPkts, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCInBroadcastPkts] = 
      moFactory.createColumn(colIfHCInBroadcastPkts, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCOutOctets] = 
      moFactory.createColumn(colIfHCOutOctets, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCOutUcastPkts] = 
      moFactory.createColumn(colIfHCOutUcastPkts, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCOutMulticastPkts] = 
      moFactory.createColumn(colIfHCOutMulticastPkts, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfHCOutBroadcastPkts] = 
      moFactory.createColumn(colIfHCOutBroadcastPkts, 
                             SMIConstants.SYNTAX_COUNTER64,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfLinkUpDownTrapEnable] = 
      new Enumerated<Integer32>(colIfLinkUpDownTrapEnable,
                     SMIConstants.SYNTAX_INTEGER,
                     moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                     (Integer32)null);
    ValueConstraint ifLinkUpDownTrapEnableVC = new EnumerationConstraint(
      new int[] { IfLinkUpDownTrapEnableEnum.enabled,
                  IfLinkUpDownTrapEnableEnum.disabled });
    ((MOMutableColumn)ifXEntryColumns[idxIfLinkUpDownTrapEnable]).
      addMOValueValidationListener(new ValueConstraintValidator(ifLinkUpDownTrapEnableVC));                                  
    ((MOMutableColumn)ifXEntryColumns[idxIfLinkUpDownTrapEnable]).
      addMOValueValidationListener(new IfLinkUpDownTrapEnableValidator());
    ifXEntryColumns[idxIfHighSpeed] = 
      moFactory.createColumn(colIfHighSpeed, 
                             SMIConstants.SYNTAX_GAUGE32,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifXEntryColumns[idxIfPromiscuousMode] = 
      new MOMutableColumn<Integer32>(colIfPromiscuousMode,
                          SMIConstants.SYNTAX_INTEGER,
                          moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                          (Integer32)null);
    ValueConstraint ifPromiscuousModeVC = new EnumerationConstraint(
      new int[] { 1,
                  2 });
    ((MOMutableColumn)ifXEntryColumns[idxIfPromiscuousMode]).
      addMOValueValidationListener(new ValueConstraintValidator(ifPromiscuousModeVC));                                  
    ((MOMutableColumn)ifXEntryColumns[idxIfPromiscuousMode]).
      addMOValueValidationListener(new IfPromiscuousModeValidator());
    ifXEntryColumns[idxIfConnectorPresent] = 
      moFactory.createColumn(colIfConnectorPresent, 
                             SMIConstants.SYNTAX_INTEGER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefTruthValue);
    ifXEntryColumns[idxIfAlias] = 
      new DisplayString(colIfAlias,
                        moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                        (OctetString)null);
    ValueConstraint ifAliasVC = new ConstraintsImpl();
    ((ConstraintsImpl)ifAliasVC).add(new Constraint(0L, 64L));
    ((MOMutableColumn)ifXEntryColumns[idxIfAlias]).
      addMOValueValidationListener(new ValueConstraintValidator(ifAliasVC));                                  
    ((MOMutableColumn)ifXEntryColumns[idxIfAlias]).
      addMOValueValidationListener(new IfAliasValidator());
    ifXEntryColumns[idxIfCounterDiscontinuityTime] = 
      moFactory.createColumn(colIfCounterDiscontinuityTime, 
                             SMIConstants.SYNTAX_TIMETICKS,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefTimeStamp);
    // Table model
    ifXEntryModel = 
      moFactory.createTableModel(oidIfXEntry,
                                 ifXEntryIndex,
                                 ifXEntryColumns);
    ((MOMutableTableModel<IfXEntryRow>)ifXEntryModel).setRowFactory(
      new IfXEntryRowFactory());
    ifXEntry = 
      moFactory.createTable(oidIfXEntry,
                            ifXEntryIndex,
                            ifXEntryColumns,
                            ifXEntryModel);
  }

  public MOTable<IfStackEntryRow,MOColumn,MOTableModel<IfStackEntryRow>> getIfStackEntry() {
    return ifStackEntry;
  }


  @SuppressWarnings(value={"unchecked"})
  private void createIfStackEntry(MOFactory moFactory) {
    // Index definition
    ifStackEntryIndexes = 
      new MOTableSubIndex[] {
      moFactory.createSubIndex(oidIfStackHigherLayer, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1),
      moFactory.createSubIndex(oidIfStackLowerLayer, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1)    };

    ifStackEntryIndex = 
      moFactory.createIndex(ifStackEntryIndexes,
                            false,
                            new MOTableIndexValidator() {
      public boolean isValidIndex(OID index) {
        boolean isValidIndex = true;
     //--AgentGen BEGIN=ifStackEntry::isValidIndex
     //--AgentGen END
        return isValidIndex;
      }
    });

    // Columns
    MOColumn[] ifStackEntryColumns = new MOColumn[1];
    ifStackEntryColumns[idxIfStackStatus] = 
      new RowStatus(colIfStackStatus);
    ValueConstraint ifStackStatusVC = new EnumerationConstraint(
      new int[] { 1,
                  2,
                  3,
                  4,
                  5,
                  6 });
    ((MOMutableColumn)ifStackEntryColumns[idxIfStackStatus]).
      addMOValueValidationListener(new ValueConstraintValidator(ifStackStatusVC));                                  
    ((MOMutableColumn)ifStackEntryColumns[idxIfStackStatus]).
      addMOValueValidationListener(new IfStackStatusValidator());
    // Table model
    ifStackEntryModel = 
      moFactory.createTableModel(oidIfStackEntry,
                                 ifStackEntryIndex,
                                 ifStackEntryColumns);
    ((MOMutableTableModel<IfStackEntryRow>)ifStackEntryModel).setRowFactory(
      new IfStackEntryRowFactory());
    ifStackEntry = 
      moFactory.createTable(oidIfStackEntry,
                            ifStackEntryIndex,
                            ifStackEntryColumns,
                            ifStackEntryModel);
  }

  public MOTable<IfTestEntryRow,MOColumn,MOTableModel<IfTestEntryRow>> getIfTestEntry() {
    return ifTestEntry;
  }


  @SuppressWarnings(value={"unchecked"})
  private void createIfTestEntry(MOFactory moFactory) {
    // Index definition
    ifTestEntryIndexes = 
      new MOTableSubIndex[] {
      moFactory.createSubIndex(oidIfIndex, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1)    };

    ifTestEntryIndex = 
      moFactory.createIndex(ifTestEntryIndexes,
                            false,
                            new MOTableIndexValidator() {
      public boolean isValidIndex(OID index) {
        boolean isValidIndex = true;
     //--AgentGen BEGIN=ifTestEntry::isValidIndex
     //--AgentGen END
        return isValidIndex;
      }
    });

    // Columns
    MOColumn[] ifTestEntryColumns = new MOColumn[6];
    ifTestEntryColumns[idxIfTestId] = 
      new MOMutableColumn<Integer32>(colIfTestId,
                          SMIConstants.SYNTAX_INTEGER,
                          moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                          (Integer32)null);
    ValueConstraint ifTestIdVC = new ConstraintsImpl();
    ((ConstraintsImpl)ifTestIdVC).add(new Constraint(0L, 2147483647L));
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestId]).
      addMOValueValidationListener(new ValueConstraintValidator(ifTestIdVC));                                  
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestId]).
      addMOValueValidationListener(new IfTestIdValidator());
    ifTestEntryColumns[idxIfTestStatus] = 
      new Enumerated<Integer32>(colIfTestStatus,
                     SMIConstants.SYNTAX_INTEGER,
                     moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                     (Integer32)null);
    ValueConstraint ifTestStatusVC = new EnumerationConstraint(
      new int[] { IfTestStatusEnum.notInUse,
                  IfTestStatusEnum.inUse });
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestStatus]).
      addMOValueValidationListener(new ValueConstraintValidator(ifTestStatusVC));                                  
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestStatus]).
      addMOValueValidationListener(new IfTestStatusValidator());
    ifTestEntryColumns[idxIfTestType] = 
      new MOMutableColumn<OID>(colIfTestType,
                          SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
                          moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                          (OID)null);
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestType]).
      addMOValueValidationListener(new IfTestTypeValidator());
    ifTestEntryColumns[idxIfTestResult] = 
      moFactory.createColumn(colIfTestResult, 
                             SMIConstants.SYNTAX_INTEGER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifTestEntryColumns[idxIfTestCode] = 
      moFactory.createColumn(colIfTestCode, 
                             SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    ifTestEntryColumns[idxIfTestOwner] = 
      new MOMutableColumn<OctetString>(colIfTestOwner,
                          SMIConstants.SYNTAX_OCTET_STRING,
                          moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE),
                          (OctetString)null);
    ValueConstraint ifTestOwnerVC = new ConstraintsImpl();
    ((ConstraintsImpl)ifTestOwnerVC).add(new Constraint(0L, 255L));
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestOwner]).
      addMOValueValidationListener(new ValueConstraintValidator(ifTestOwnerVC));                                  
    ((MOMutableColumn)ifTestEntryColumns[idxIfTestOwner]).
      addMOValueValidationListener(new IfTestOwnerValidator());
    // Table model
    ifTestEntryModel = 
      moFactory.createTableModel(oidIfTestEntry,
                                 ifTestEntryIndex,
                                 ifTestEntryColumns);
    ((MOMutableTableModel<IfTestEntryRow>)ifTestEntryModel).setRowFactory(
      new IfTestEntryRowFactory());
    ifTestEntry = 
      moFactory.createTable(oidIfTestEntry,
                            ifTestEntryIndex,
                            ifTestEntryColumns,
                            ifTestEntryModel);
  }

  public MOTable<IfRcvAddressEntryRow,MOColumn,MOTableModel<IfRcvAddressEntryRow>> getIfRcvAddressEntry() {
    return ifRcvAddressEntry;
  }


  @SuppressWarnings(value={"unchecked"})
  private void createIfRcvAddressEntry(MOFactory moFactory) {
    // Index definition
    ifRcvAddressEntryIndexes = 
      new MOTableSubIndex[] {
      moFactory.createSubIndex(oidIfIndex, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1),
      moFactory.createSubIndex(oidIfRcvAddressAddress, 
                               SMIConstants.SYNTAX_OCTET_STRING, 0, 128)    };

    ifRcvAddressEntryIndex = 
      moFactory.createIndex(ifRcvAddressEntryIndexes,
                            false,
                            new MOTableIndexValidator() {
      public boolean isValidIndex(OID index) {
        boolean isValidIndex = true;
     //--AgentGen BEGIN=ifRcvAddressEntry::isValidIndex
     //--AgentGen END
        return isValidIndex;
      }
    });

    // Columns
    MOColumn[] ifRcvAddressEntryColumns = new MOColumn[2];
    ifRcvAddressEntryColumns[idxIfRcvAddressStatus] = 
      new RowStatus(colIfRcvAddressStatus);
    ValueConstraint ifRcvAddressStatusVC = new EnumerationConstraint(
      new int[] { 1,
                  2,
                  3,
                  4,
                  5,
                  6 });
    ((MOMutableColumn)ifRcvAddressEntryColumns[idxIfRcvAddressStatus]).
      addMOValueValidationListener(new ValueConstraintValidator(ifRcvAddressStatusVC));                                  
    ((MOMutableColumn)ifRcvAddressEntryColumns[idxIfRcvAddressStatus]).
      addMOValueValidationListener(new IfRcvAddressStatusValidator());
    ifRcvAddressEntryColumns[idxIfRcvAddressType] = 
      new Enumerated<Integer32>(colIfRcvAddressType,
                     SMIConstants.SYNTAX_INTEGER,
                     moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_CREATE),
                     new Integer32(2));
    ValueConstraint ifRcvAddressTypeVC = new EnumerationConstraint(
      new int[] { IfRcvAddressTypeEnum.other,
                  IfRcvAddressTypeEnum._volatile,
                  IfRcvAddressTypeEnum.nonVolatile });
    ((MOMutableColumn)ifRcvAddressEntryColumns[idxIfRcvAddressType]).
      addMOValueValidationListener(new ValueConstraintValidator(ifRcvAddressTypeVC));                                  
    ((MOMutableColumn)ifRcvAddressEntryColumns[idxIfRcvAddressType]).
      addMOValueValidationListener(new IfRcvAddressTypeValidator());
    // Table model
    ifRcvAddressEntryModel = 
      moFactory.createTableModel(oidIfRcvAddressEntry,
                                 ifRcvAddressEntryIndex,
                                 ifRcvAddressEntryColumns);
    ((MOMutableTableModel<IfRcvAddressEntryRow>)ifRcvAddressEntryModel).setRowFactory(
      new IfRcvAddressEntryRowFactory());
    ifRcvAddressEntry = 
      moFactory.createTable(oidIfRcvAddressEntry,
                            ifRcvAddressEntryIndex,
                            ifRcvAddressEntryColumns,
                            ifRcvAddressEntryModel);
  }



  public void registerMOs(MOServer server, OctetString context) 
    throws DuplicateRegistrationException 
  {
    // Scalar Objects
    server.register(this.ifNumber, context);
    server.register(this.ifTableLastChange, context);
    server.register(this.ifStackLastChange, context);
    server.register(this.ifEntry, context);
    server.register(this.ifXEntry, context);
    server.register(this.ifStackEntry, context);
    server.register(this.ifTestEntry, context);
    server.register(this.ifRcvAddressEntry, context);
//--AgentGen BEGIN=_registerMOs
//--AgentGen END
  }

  public void unregisterMOs(MOServer server, OctetString context) {
    // Scalar Objects
    server.unregister(this.ifNumber, context);
    server.unregister(this.ifTableLastChange, context);
    server.unregister(this.ifStackLastChange, context);
    server.unregister(this.ifEntry, context);
    server.unregister(this.ifXEntry, context);
    server.unregister(this.ifStackEntry, context);
    server.unregister(this.ifTestEntry, context);
    server.unregister(this.ifRcvAddressEntry, context);
//--AgentGen BEGIN=_unregisterMOs
//--AgentGen END
  }

  // Notifications
  public void linkDown(NotificationOriginator notificationOriginator,
                       OctetString context, VariableBinding[] vbs) {
    if (vbs.length < 3) {
      throw new IllegalArgumentException("Too few notification objects: "+
                                         vbs.length+"<3");
    }
    if (!(vbs[0].getOid().startsWith(oidTrapVarIfIndex))) {
      throw new IllegalArgumentException("Variable 0 has wrong OID: "+vbs[0].getOid()+
                                         " does not start with "+oidTrapVarIfIndex);
    }
    if (!ifEntryIndex.isValidIndex(ifEntry.getIndexPart(vbs[0].getOid()))) {
      throw new IllegalArgumentException("Illegal index for variable 0 specified: "+
                                         ifEntry.getIndexPart(vbs[0].getOid()));
    }
    if (!(vbs[1].getOid().startsWith(oidTrapVarIfAdminStatus))) {
      throw new IllegalArgumentException("Variable 1 has wrong OID: "+vbs[1].getOid()+
                                         " does not start with "+oidTrapVarIfAdminStatus);
    }
    if (!ifEntryIndex.isValidIndex(ifEntry.getIndexPart(vbs[1].getOid()))) {
      throw new IllegalArgumentException("Illegal index for variable 1 specified: "+
                                         ifEntry.getIndexPart(vbs[1].getOid()));
    }
    if (!(vbs[2].getOid().startsWith(oidTrapVarIfOperStatus))) {
      throw new IllegalArgumentException("Variable 2 has wrong OID: "+vbs[2].getOid()+
                                         " does not start with "+oidTrapVarIfOperStatus);
    }
    if (!ifEntryIndex.isValidIndex(ifEntry.getIndexPart(vbs[2].getOid()))) {
      throw new IllegalArgumentException("Illegal index for variable 2 specified: "+
                                         ifEntry.getIndexPart(vbs[2].getOid()));
    }
    notificationOriginator.notify(context, oidLinkDown, vbs);
  }

  public void linkUp(NotificationOriginator notificationOriginator,
                     OctetString context, VariableBinding[] vbs) {
    if (vbs.length < 3) {
      throw new IllegalArgumentException("Too few notification objects: "+
                                         vbs.length+"<3");
    }
    if (!(vbs[0].getOid().startsWith(oidTrapVarIfIndex))) {
      throw new IllegalArgumentException("Variable 0 has wrong OID: "+vbs[0].getOid()+
                                         " does not start with "+oidTrapVarIfIndex);
    }
    if (!ifEntryIndex.isValidIndex(ifEntry.getIndexPart(vbs[0].getOid()))) {
      throw new IllegalArgumentException("Illegal index for variable 0 specified: "+
                                         ifEntry.getIndexPart(vbs[0].getOid()));
    }
    if (!(vbs[1].getOid().startsWith(oidTrapVarIfAdminStatus))) {
      throw new IllegalArgumentException("Variable 1 has wrong OID: "+vbs[1].getOid()+
                                         " does not start with "+oidTrapVarIfAdminStatus);
    }
    if (!ifEntryIndex.isValidIndex(ifEntry.getIndexPart(vbs[1].getOid()))) {
      throw new IllegalArgumentException("Illegal index for variable 1 specified: "+
                                         ifEntry.getIndexPart(vbs[1].getOid()));
    }
    if (!(vbs[2].getOid().startsWith(oidTrapVarIfOperStatus))) {
      throw new IllegalArgumentException("Variable 2 has wrong OID: "+vbs[2].getOid()+
                                         " does not start with "+oidTrapVarIfOperStatus);
    }
    if (!ifEntryIndex.isValidIndex(ifEntry.getIndexPart(vbs[2].getOid()))) {
      throw new IllegalArgumentException("Illegal index for variable 2 specified: "+
                                         ifEntry.getIndexPart(vbs[2].getOid()));
    }
    notificationOriginator.notify(context, oidLinkUp, vbs);
  }


  // Scalars

  // Value Validators

  /**
   * The <code>IfAdminStatusValidator</code> implements the value
   * validation for <code>IfAdminStatus</code>.
   */
  static class IfAdminStatusValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifAdminStatus::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfLinkUpDownTrapEnableValidator</code> implements the value
   * validation for <code>IfLinkUpDownTrapEnable</code>.
   */
  static class IfLinkUpDownTrapEnableValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifLinkUpDownTrapEnable::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfPromiscuousModeValidator</code> implements the value
   * validation for <code>IfPromiscuousMode</code>.
   */
  static class IfPromiscuousModeValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifPromiscuousMode::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfAliasValidator</code> implements the value
   * validation for <code>IfAlias</code>.
   */
  static class IfAliasValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 64)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
        return;
      }
     //--AgentGen BEGIN=ifAlias::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfStackStatusValidator</code> implements the value
   * validation for <code>IfStackStatus</code>.
   */
  static class IfStackStatusValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifStackStatus::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfTestIdValidator</code> implements the value
   * validation for <code>IfTestId</code>.
   */
  static class IfTestIdValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      long v = ((Integer32)newValue).getValue();
      if (!(((v >= 0L) && (v <= 2147483647L)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_VALUE);
        return;
      }
     //--AgentGen BEGIN=ifTestId::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfTestStatusValidator</code> implements the value
   * validation for <code>IfTestStatus</code>.
   */
  static class IfTestStatusValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifTestStatus::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfTestTypeValidator</code> implements the value
   * validation for <code>IfTestType</code>.
   */
  static class IfTestTypeValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifTestType::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfTestOwnerValidator</code> implements the value
   * validation for <code>IfTestOwner</code>.
   */
  static class IfTestOwnerValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
        return;
      }
     //--AgentGen BEGIN=ifTestOwner::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfRcvAddressStatusValidator</code> implements the value
   * validation for <code>IfRcvAddressStatus</code>.
   */
  static class IfRcvAddressStatusValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifRcvAddressStatus::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>IfRcvAddressTypeValidator</code> implements the value
   * validation for <code>IfRcvAddressType</code>.
   */
  static class IfRcvAddressTypeValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=ifRcvAddressType::validate
     //--AgentGen END
    }
  }

  // Rows and Factories

  public class IfEntryRow extends DefaultMOMutableRow2PC {

     //--AgentGen BEGIN=ifEntry::RowMembers
     //--AgentGen END

    public IfEntryRow(OID index, Variable[] values) {
      super(index, values);
     //--AgentGen BEGIN=ifEntry::RowConstructor
     //--AgentGen END
    }
    
    public Integer32 getIfIndex() {
     //--AgentGen BEGIN=ifEntry::getIfIndex
     //--AgentGen END
      return (Integer32) super.getValue(idxIfIndex);
    }  
    
    public void setIfIndex(Integer32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfIndex
     //--AgentGen END
      super.setValue(idxIfIndex, newValue);
    }
    
    public OctetString getIfDescr() {
     //--AgentGen BEGIN=ifEntry::getIfDescr
     //--AgentGen END
      return (OctetString) super.getValue(idxIfDescr);
    }  
    
    public void setIfDescr(OctetString newValue) {
     //--AgentGen BEGIN=ifEntry::setIfDescr
     //--AgentGen END
      super.setValue(idxIfDescr, newValue);
    }
    
    public Integer32 getIfType() {
     //--AgentGen BEGIN=ifEntry::getIfType
     //--AgentGen END
      return (Integer32) super.getValue(idxIfType);
    }  
    
    public void setIfType(Integer32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfType
     //--AgentGen END
      super.setValue(idxIfType, newValue);
    }
    
    public Integer32 getIfMtu() {
     //--AgentGen BEGIN=ifEntry::getIfMtu
     //--AgentGen END
      return (Integer32) super.getValue(idxIfMtu);
    }  
    
    public void setIfMtu(Integer32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfMtu
     //--AgentGen END
      super.setValue(idxIfMtu, newValue);
    }
    
    public Gauge32 getIfSpeed() {
     //--AgentGen BEGIN=ifEntry::getIfSpeed
     //--AgentGen END
      return (Gauge32) super.getValue(idxIfSpeed);
    }  
    
    public void setIfSpeed(Gauge32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfSpeed
     //--AgentGen END
      super.setValue(idxIfSpeed, newValue);
    }
    
    public OctetString getIfPhysAddress() {
     //--AgentGen BEGIN=ifEntry::getIfPhysAddress
     //--AgentGen END
      return (OctetString) super.getValue(idxIfPhysAddress);
    }  
    
    public void setIfPhysAddress(OctetString newValue) {
     //--AgentGen BEGIN=ifEntry::setIfPhysAddress
     //--AgentGen END
      super.setValue(idxIfPhysAddress, newValue);
    }
    
    public Integer32 getIfAdminStatus() {
     //--AgentGen BEGIN=ifEntry::getIfAdminStatus
     //--AgentGen END
      return (Integer32) super.getValue(idxIfAdminStatus);
    }  
    
    public void setIfAdminStatus(Integer32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfAdminStatus
     //--AgentGen END
      super.setValue(idxIfAdminStatus, newValue);
    }
    
    public Integer32 getIfOperStatus() {
     //--AgentGen BEGIN=ifEntry::getIfOperStatus
     //--AgentGen END
      return (Integer32) super.getValue(idxIfOperStatus);
    }  
    
    public void setIfOperStatus(Integer32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOperStatus
     //--AgentGen END
      super.setValue(idxIfOperStatus, newValue);
    }
    
    public TimeTicks getIfLastChange() {
     //--AgentGen BEGIN=ifEntry::getIfLastChange
     //--AgentGen END
      return (TimeTicks) super.getValue(idxIfLastChange);
    }  
    
    public void setIfLastChange(TimeTicks newValue) {
     //--AgentGen BEGIN=ifEntry::setIfLastChange
     //--AgentGen END
      super.setValue(idxIfLastChange, newValue);
    }
    
    public Counter32 getIfInOctets() {
     //--AgentGen BEGIN=ifEntry::getIfInOctets
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInOctets);
    }  
    
    public void setIfInOctets(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfInOctets
     //--AgentGen END
      super.setValue(idxIfInOctets, newValue);
    }
    
    public Counter32 getIfInUcastPkts() {
     //--AgentGen BEGIN=ifEntry::getIfInUcastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInUcastPkts);
    }  
    
    public void setIfInUcastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfInUcastPkts
     //--AgentGen END
      super.setValue(idxIfInUcastPkts, newValue);
    }
    
    public Counter32 getIfInNUcastPkts() {
     //--AgentGen BEGIN=ifEntry::getIfInNUcastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInNUcastPkts);
    }  
    
    public void setIfInNUcastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfInNUcastPkts
     //--AgentGen END
      super.setValue(idxIfInNUcastPkts, newValue);
    }
    
    public Counter32 getIfInDiscards() {
     //--AgentGen BEGIN=ifEntry::getIfInDiscards
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInDiscards);
    }  
    
    public void setIfInDiscards(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfInDiscards
     //--AgentGen END
      super.setValue(idxIfInDiscards, newValue);
    }
    
    public Counter32 getIfInErrors() {
     //--AgentGen BEGIN=ifEntry::getIfInErrors
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInErrors);
    }  
    
    public void setIfInErrors(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfInErrors
     //--AgentGen END
      super.setValue(idxIfInErrors, newValue);
    }
    
    public Counter32 getIfInUnknownProtos() {
     //--AgentGen BEGIN=ifEntry::getIfInUnknownProtos
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInUnknownProtos);
    }  
    
    public void setIfInUnknownProtos(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfInUnknownProtos
     //--AgentGen END
      super.setValue(idxIfInUnknownProtos, newValue);
    }
    
    public Counter32 getIfOutOctets() {
     //--AgentGen BEGIN=ifEntry::getIfOutOctets
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutOctets);
    }  
    
    public void setIfOutOctets(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOutOctets
     //--AgentGen END
      super.setValue(idxIfOutOctets, newValue);
    }
    
    public Counter32 getIfOutUcastPkts() {
     //--AgentGen BEGIN=ifEntry::getIfOutUcastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutUcastPkts);
    }  
    
    public void setIfOutUcastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOutUcastPkts
     //--AgentGen END
      super.setValue(idxIfOutUcastPkts, newValue);
    }
    
    public Counter32 getIfOutNUcastPkts() {
     //--AgentGen BEGIN=ifEntry::getIfOutNUcastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutNUcastPkts);
    }  
    
    public void setIfOutNUcastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOutNUcastPkts
     //--AgentGen END
      super.setValue(idxIfOutNUcastPkts, newValue);
    }
    
    public Counter32 getIfOutDiscards() {
     //--AgentGen BEGIN=ifEntry::getIfOutDiscards
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutDiscards);
    }  
    
    public void setIfOutDiscards(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOutDiscards
     //--AgentGen END
      super.setValue(idxIfOutDiscards, newValue);
    }
    
    public Counter32 getIfOutErrors() {
     //--AgentGen BEGIN=ifEntry::getIfOutErrors
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutErrors);
    }  
    
    public void setIfOutErrors(Counter32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOutErrors
     //--AgentGen END
      super.setValue(idxIfOutErrors, newValue);
    }
    
    public Gauge32 getIfOutQLen() {
     //--AgentGen BEGIN=ifEntry::getIfOutQLen
     //--AgentGen END
      return (Gauge32) super.getValue(idxIfOutQLen);
    }  
    
    public void setIfOutQLen(Gauge32 newValue) {
     //--AgentGen BEGIN=ifEntry::setIfOutQLen
     //--AgentGen END
      super.setValue(idxIfOutQLen, newValue);
    }
    
    public OID getIfSpecific() {
     //--AgentGen BEGIN=ifEntry::getIfSpecific
     //--AgentGen END
      return (OID) super.getValue(idxIfSpecific);
    }  
    
    public void setIfSpecific(OID newValue) {
     //--AgentGen BEGIN=ifEntry::setIfSpecific
     //--AgentGen END
      super.setValue(idxIfSpecific, newValue);
    }
    
    public Variable getValue(int column) {
     //--AgentGen BEGIN=ifEntry::RowGetValue
     //--AgentGen END
      switch(column) {
        case idxIfIndex: 
        	return getIfIndex();
        case idxIfDescr: 
        	return getIfDescr();
        case idxIfType: 
        	return getIfType();
        case idxIfMtu: 
        	return getIfMtu();
        case idxIfSpeed: 
        	return getIfSpeed();
        case idxIfPhysAddress: 
        	return getIfPhysAddress();
        case idxIfAdminStatus: 
        	return getIfAdminStatus();
        case idxIfOperStatus: 
        	return getIfOperStatus();
        case idxIfLastChange: 
        	return getIfLastChange();
        case idxIfInOctets: 
        	return getIfInOctets();
        case idxIfInUcastPkts: 
        	return getIfInUcastPkts();
        case idxIfInNUcastPkts: 
        	return getIfInNUcastPkts();
        case idxIfInDiscards: 
        	return getIfInDiscards();
        case idxIfInErrors: 
        	return getIfInErrors();
        case idxIfInUnknownProtos: 
        	return getIfInUnknownProtos();
        case idxIfOutOctets: 
        	return getIfOutOctets();
        case idxIfOutUcastPkts: 
        	return getIfOutUcastPkts();
        case idxIfOutNUcastPkts: 
        	return getIfOutNUcastPkts();
        case idxIfOutDiscards: 
        	return getIfOutDiscards();
        case idxIfOutErrors: 
        	return getIfOutErrors();
        case idxIfOutQLen: 
        	return getIfOutQLen();
        case idxIfSpecific: 
        	return getIfSpecific();
        default:
          return super.getValue(column);
      }
    }
    
    public void setValue(int column, Variable value) {
     //--AgentGen BEGIN=ifEntry::RowSetValue
     //--AgentGen END
      switch(column) {
        case idxIfIndex: 
        	setIfIndex((Integer32)value);
        	break;
        case idxIfDescr: 
        	setIfDescr((OctetString)value);
        	break;
        case idxIfType: 
        	setIfType((Integer32)value);
        	break;
        case idxIfMtu: 
        	setIfMtu((Integer32)value);
        	break;
        case idxIfSpeed: 
        	setIfSpeed((Gauge32)value);
        	break;
        case idxIfPhysAddress: 
        	setIfPhysAddress((OctetString)value);
        	break;
        case idxIfAdminStatus: 
        	setIfAdminStatus((Integer32)value);
        	break;
        case idxIfOperStatus: 
        	setIfOperStatus((Integer32)value);
        	break;
        case idxIfLastChange: 
        	setIfLastChange((TimeTicks)value);
        	break;
        case idxIfInOctets: 
        	setIfInOctets((Counter32)value);
        	break;
        case idxIfInUcastPkts: 
        	setIfInUcastPkts((Counter32)value);
        	break;
        case idxIfInNUcastPkts: 
        	setIfInNUcastPkts((Counter32)value);
        	break;
        case idxIfInDiscards: 
        	setIfInDiscards((Counter32)value);
        	break;
        case idxIfInErrors: 
        	setIfInErrors((Counter32)value);
        	break;
        case idxIfInUnknownProtos: 
        	setIfInUnknownProtos((Counter32)value);
        	break;
        case idxIfOutOctets: 
        	setIfOutOctets((Counter32)value);
        	break;
        case idxIfOutUcastPkts: 
        	setIfOutUcastPkts((Counter32)value);
        	break;
        case idxIfOutNUcastPkts: 
        	setIfOutNUcastPkts((Counter32)value);
        	break;
        case idxIfOutDiscards: 
        	setIfOutDiscards((Counter32)value);
        	break;
        case idxIfOutErrors: 
        	setIfOutErrors((Counter32)value);
        	break;
        case idxIfOutQLen: 
        	setIfOutQLen((Gauge32)value);
        	break;
        case idxIfSpecific: 
        	setIfSpecific((OID)value);
        	break;
        default:
          super.setValue(column, value);
      }
    }

     //--AgentGen BEGIN=ifEntry::Row
     //--AgentGen END
  }
  
  class IfEntryRowFactory 
        extends DefaultMOMutableRow2PCFactory<IfEntryRow>
  {
    public synchronized IfEntryRow createRow(OID index, Variable[] values)
        throws UnsupportedOperationException 
    {
      IfEntryRow row = 
        new IfEntryRow(index, values);
     //--AgentGen BEGIN=ifEntry::createRow
     //--AgentGen END
      return row;
    }
    
    public synchronized void freeRow(IfEntryRow row) {
     //--AgentGen BEGIN=ifEntry::freeRow
     //--AgentGen END
    }

     //--AgentGen BEGIN=ifEntry::RowFactory
     //--AgentGen END
  }

  public class IfXEntryRow extends DefaultMOMutableRow2PC {

     //--AgentGen BEGIN=ifXEntry::RowMembers
     //--AgentGen END

    public IfXEntryRow(OID index, Variable[] values) {
      super(index, values);
     //--AgentGen BEGIN=ifXEntry::RowConstructor
     //--AgentGen END
    }
    
    public OctetString getIfName() {
     //--AgentGen BEGIN=ifXEntry::getIfName
     //--AgentGen END
      return (OctetString) super.getValue(idxIfName);
    }  
    
    public void setIfName(OctetString newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfName
     //--AgentGen END
      super.setValue(idxIfName, newValue);
    }
    
    public Counter32 getIfInMulticastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfInMulticastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInMulticastPkts);
    }  
    
    public void setIfInMulticastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfInMulticastPkts
     //--AgentGen END
      super.setValue(idxIfInMulticastPkts, newValue);
    }
    
    public Counter32 getIfInBroadcastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfInBroadcastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfInBroadcastPkts);
    }  
    
    public void setIfInBroadcastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfInBroadcastPkts
     //--AgentGen END
      super.setValue(idxIfInBroadcastPkts, newValue);
    }
    
    public Counter32 getIfOutMulticastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfOutMulticastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutMulticastPkts);
    }  
    
    public void setIfOutMulticastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfOutMulticastPkts
     //--AgentGen END
      super.setValue(idxIfOutMulticastPkts, newValue);
    }
    
    public Counter32 getIfOutBroadcastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfOutBroadcastPkts
     //--AgentGen END
      return (Counter32) super.getValue(idxIfOutBroadcastPkts);
    }  
    
    public void setIfOutBroadcastPkts(Counter32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfOutBroadcastPkts
     //--AgentGen END
      super.setValue(idxIfOutBroadcastPkts, newValue);
    }
    
    public Counter64 getIfHCInOctets() {
     //--AgentGen BEGIN=ifXEntry::getIfHCInOctets
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCInOctets);
    }  
    
    public void setIfHCInOctets(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCInOctets
     //--AgentGen END
      super.setValue(idxIfHCInOctets, newValue);
    }
    
    public Counter64 getIfHCInUcastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfHCInUcastPkts
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCInUcastPkts);
    }  
    
    public void setIfHCInUcastPkts(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCInUcastPkts
     //--AgentGen END
      super.setValue(idxIfHCInUcastPkts, newValue);
    }
    
    public Counter64 getIfHCInMulticastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfHCInMulticastPkts
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCInMulticastPkts);
    }  
    
    public void setIfHCInMulticastPkts(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCInMulticastPkts
     //--AgentGen END
      super.setValue(idxIfHCInMulticastPkts, newValue);
    }
    
    public Counter64 getIfHCInBroadcastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfHCInBroadcastPkts
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCInBroadcastPkts);
    }  
    
    public void setIfHCInBroadcastPkts(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCInBroadcastPkts
     //--AgentGen END
      super.setValue(idxIfHCInBroadcastPkts, newValue);
    }
    
    public Counter64 getIfHCOutOctets() {
     //--AgentGen BEGIN=ifXEntry::getIfHCOutOctets
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCOutOctets);
    }  
    
    public void setIfHCOutOctets(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCOutOctets
     //--AgentGen END
      super.setValue(idxIfHCOutOctets, newValue);
    }
    
    public Counter64 getIfHCOutUcastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfHCOutUcastPkts
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCOutUcastPkts);
    }  
    
    public void setIfHCOutUcastPkts(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCOutUcastPkts
     //--AgentGen END
      super.setValue(idxIfHCOutUcastPkts, newValue);
    }
    
    public Counter64 getIfHCOutMulticastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfHCOutMulticastPkts
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCOutMulticastPkts);
    }  
    
    public void setIfHCOutMulticastPkts(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCOutMulticastPkts
     //--AgentGen END
      super.setValue(idxIfHCOutMulticastPkts, newValue);
    }
    
    public Counter64 getIfHCOutBroadcastPkts() {
     //--AgentGen BEGIN=ifXEntry::getIfHCOutBroadcastPkts
     //--AgentGen END
      return (Counter64) super.getValue(idxIfHCOutBroadcastPkts);
    }  
    
    public void setIfHCOutBroadcastPkts(Counter64 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHCOutBroadcastPkts
     //--AgentGen END
      super.setValue(idxIfHCOutBroadcastPkts, newValue);
    }
    
    public Integer32 getIfLinkUpDownTrapEnable() {
     //--AgentGen BEGIN=ifXEntry::getIfLinkUpDownTrapEnable
     //--AgentGen END
      return (Integer32) super.getValue(idxIfLinkUpDownTrapEnable);
    }  
    
    public void setIfLinkUpDownTrapEnable(Integer32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfLinkUpDownTrapEnable
     //--AgentGen END
      super.setValue(idxIfLinkUpDownTrapEnable, newValue);
    }
    
    public Gauge32 getIfHighSpeed() {
     //--AgentGen BEGIN=ifXEntry::getIfHighSpeed
     //--AgentGen END
      return (Gauge32) super.getValue(idxIfHighSpeed);
    }  
    
    public void setIfHighSpeed(Gauge32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfHighSpeed
     //--AgentGen END
      super.setValue(idxIfHighSpeed, newValue);
    }
    
    public Integer32 getIfPromiscuousMode() {
     //--AgentGen BEGIN=ifXEntry::getIfPromiscuousMode
     //--AgentGen END
      return (Integer32) super.getValue(idxIfPromiscuousMode);
    }  
    
    public void setIfPromiscuousMode(Integer32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfPromiscuousMode
     //--AgentGen END
      super.setValue(idxIfPromiscuousMode, newValue);
    }
    
    public Integer32 getIfConnectorPresent() {
     //--AgentGen BEGIN=ifXEntry::getIfConnectorPresent
     //--AgentGen END
      return (Integer32) super.getValue(idxIfConnectorPresent);
    }  
    
    public void setIfConnectorPresent(Integer32 newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfConnectorPresent
     //--AgentGen END
      super.setValue(idxIfConnectorPresent, newValue);
    }
    
    public OctetString getIfAlias() {
     //--AgentGen BEGIN=ifXEntry::getIfAlias
     //--AgentGen END
      return (OctetString) super.getValue(idxIfAlias);
    }  
    
    public void setIfAlias(OctetString newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfAlias
     //--AgentGen END
      super.setValue(idxIfAlias, newValue);
    }
    
    public TimeTicks getIfCounterDiscontinuityTime() {
     //--AgentGen BEGIN=ifXEntry::getIfCounterDiscontinuityTime
     //--AgentGen END
      return (TimeTicks) super.getValue(idxIfCounterDiscontinuityTime);
    }  
    
    public void setIfCounterDiscontinuityTime(TimeTicks newValue) {
     //--AgentGen BEGIN=ifXEntry::setIfCounterDiscontinuityTime
     //--AgentGen END
      super.setValue(idxIfCounterDiscontinuityTime, newValue);
    }
    
    public Variable getValue(int column) {
     //--AgentGen BEGIN=ifXEntry::RowGetValue
     //--AgentGen END
      switch(column) {
        case idxIfName: 
        	return getIfName();
        case idxIfInMulticastPkts: 
        	return getIfInMulticastPkts();
        case idxIfInBroadcastPkts: 
        	return getIfInBroadcastPkts();
        case idxIfOutMulticastPkts: 
        	return getIfOutMulticastPkts();
        case idxIfOutBroadcastPkts: 
        	return getIfOutBroadcastPkts();
        case idxIfHCInOctets: 
        	return getIfHCInOctets();
        case idxIfHCInUcastPkts: 
        	return getIfHCInUcastPkts();
        case idxIfHCInMulticastPkts: 
        	return getIfHCInMulticastPkts();
        case idxIfHCInBroadcastPkts: 
        	return getIfHCInBroadcastPkts();
        case idxIfHCOutOctets: 
        	return getIfHCOutOctets();
        case idxIfHCOutUcastPkts: 
        	return getIfHCOutUcastPkts();
        case idxIfHCOutMulticastPkts: 
        	return getIfHCOutMulticastPkts();
        case idxIfHCOutBroadcastPkts: 
        	return getIfHCOutBroadcastPkts();
        case idxIfLinkUpDownTrapEnable: 
        	return getIfLinkUpDownTrapEnable();
        case idxIfHighSpeed: 
        	return getIfHighSpeed();
        case idxIfPromiscuousMode: 
        	return getIfPromiscuousMode();
        case idxIfConnectorPresent: 
        	return getIfConnectorPresent();
        case idxIfAlias: 
        	return getIfAlias();
        case idxIfCounterDiscontinuityTime: 
        	return getIfCounterDiscontinuityTime();
        default:
          return super.getValue(column);
      }
    }
    
    public void setValue(int column, Variable value) {
     //--AgentGen BEGIN=ifXEntry::RowSetValue
     //--AgentGen END
      switch(column) {
        case idxIfName: 
        	setIfName((OctetString)value);
        	break;
        case idxIfInMulticastPkts: 
        	setIfInMulticastPkts((Counter32)value);
        	break;
        case idxIfInBroadcastPkts: 
        	setIfInBroadcastPkts((Counter32)value);
        	break;
        case idxIfOutMulticastPkts: 
        	setIfOutMulticastPkts((Counter32)value);
        	break;
        case idxIfOutBroadcastPkts: 
        	setIfOutBroadcastPkts((Counter32)value);
        	break;
        case idxIfHCInOctets: 
        	setIfHCInOctets((Counter64)value);
        	break;
        case idxIfHCInUcastPkts: 
        	setIfHCInUcastPkts((Counter64)value);
        	break;
        case idxIfHCInMulticastPkts: 
        	setIfHCInMulticastPkts((Counter64)value);
        	break;
        case idxIfHCInBroadcastPkts: 
        	setIfHCInBroadcastPkts((Counter64)value);
        	break;
        case idxIfHCOutOctets: 
        	setIfHCOutOctets((Counter64)value);
        	break;
        case idxIfHCOutUcastPkts: 
        	setIfHCOutUcastPkts((Counter64)value);
        	break;
        case idxIfHCOutMulticastPkts: 
        	setIfHCOutMulticastPkts((Counter64)value);
        	break;
        case idxIfHCOutBroadcastPkts: 
        	setIfHCOutBroadcastPkts((Counter64)value);
        	break;
        case idxIfLinkUpDownTrapEnable: 
        	setIfLinkUpDownTrapEnable((Integer32)value);
        	break;
        case idxIfHighSpeed: 
        	setIfHighSpeed((Gauge32)value);
        	break;
        case idxIfPromiscuousMode: 
        	setIfPromiscuousMode((Integer32)value);
        	break;
        case idxIfConnectorPresent: 
        	setIfConnectorPresent((Integer32)value);
        	break;
        case idxIfAlias: 
        	setIfAlias((OctetString)value);
        	break;
        case idxIfCounterDiscontinuityTime: 
        	setIfCounterDiscontinuityTime((TimeTicks)value);
        	break;
        default:
          super.setValue(column, value);
      }
    }

     //--AgentGen BEGIN=ifXEntry::Row
     //--AgentGen END
  }
  
  class IfXEntryRowFactory 
        extends DefaultMOMutableRow2PCFactory<IfXEntryRow>
  {
    public synchronized IfXEntryRow createRow(OID index, Variable[] values)
        throws UnsupportedOperationException 
    {
      IfXEntryRow row = 
        new IfXEntryRow(index, values);
     //--AgentGen BEGIN=ifXEntry::createRow
     //--AgentGen END
      return row;
    }
    
    public synchronized void freeRow(IfXEntryRow row) {
     //--AgentGen BEGIN=ifXEntry::freeRow
     //--AgentGen END
    }

     //--AgentGen BEGIN=ifXEntry::RowFactory
     //--AgentGen END
  }

  public class IfStackEntryRow extends DefaultMOMutableRow2PC {

     //--AgentGen BEGIN=ifStackEntry::RowMembers
     //--AgentGen END

    public IfStackEntryRow(OID index, Variable[] values) {
      super(index, values);
     //--AgentGen BEGIN=ifStackEntry::RowConstructor
     //--AgentGen END
    }
    
    public Integer32 getIfStackStatus() {
     //--AgentGen BEGIN=ifStackEntry::getIfStackStatus
     //--AgentGen END
      return (Integer32) super.getValue(idxIfStackStatus);
    }  
    
    public void setIfStackStatus(Integer32 newValue) {
     //--AgentGen BEGIN=ifStackEntry::setIfStackStatus
     //--AgentGen END
      super.setValue(idxIfStackStatus, newValue);
    }
    
    public Variable getValue(int column) {
     //--AgentGen BEGIN=ifStackEntry::RowGetValue
     //--AgentGen END
      switch(column) {
        case idxIfStackStatus: 
        	return getIfStackStatus();
        default:
          return super.getValue(column);
      }
    }
    
    public void setValue(int column, Variable value) {
     //--AgentGen BEGIN=ifStackEntry::RowSetValue
     //--AgentGen END
      switch(column) {
        case idxIfStackStatus: 
        	setIfStackStatus((Integer32)value);
        	break;
        default:
          super.setValue(column, value);
      }
    }

     //--AgentGen BEGIN=ifStackEntry::Row
     //--AgentGen END
  }
  
  class IfStackEntryRowFactory 
        extends DefaultMOMutableRow2PCFactory<IfStackEntryRow>
  {
    public synchronized IfStackEntryRow createRow(OID index, Variable[] values)
        throws UnsupportedOperationException 
    {
      IfStackEntryRow row = 
        new IfStackEntryRow(index, values);
     //--AgentGen BEGIN=ifStackEntry::createRow
     //--AgentGen END
      return row;
    }
    
    public synchronized void freeRow(IfStackEntryRow row) {
     //--AgentGen BEGIN=ifStackEntry::freeRow
     //--AgentGen END
    }

     //--AgentGen BEGIN=ifStackEntry::RowFactory
     //--AgentGen END
  }

  public class IfTestEntryRow extends DefaultMOMutableRow2PC {

     //--AgentGen BEGIN=ifTestEntry::RowMembers
     //--AgentGen END

    public IfTestEntryRow(OID index, Variable[] values) {
      super(index, values);
     //--AgentGen BEGIN=ifTestEntry::RowConstructor
     //--AgentGen END
    }
    
    public Integer32 getIfTestId() {
     //--AgentGen BEGIN=ifTestEntry::getIfTestId
     //--AgentGen END
      return (Integer32) super.getValue(idxIfTestId);
    }  
    
    public void setIfTestId(Integer32 newValue) {
     //--AgentGen BEGIN=ifTestEntry::setIfTestId
     //--AgentGen END
      super.setValue(idxIfTestId, newValue);
    }
    
    public Integer32 getIfTestStatus() {
     //--AgentGen BEGIN=ifTestEntry::getIfTestStatus
     //--AgentGen END
      return (Integer32) super.getValue(idxIfTestStatus);
    }  
    
    public void setIfTestStatus(Integer32 newValue) {
     //--AgentGen BEGIN=ifTestEntry::setIfTestStatus
     //--AgentGen END
      super.setValue(idxIfTestStatus, newValue);
    }
    
    public OID getIfTestType() {
     //--AgentGen BEGIN=ifTestEntry::getIfTestType
     //--AgentGen END
      return (OID) super.getValue(idxIfTestType);
    }  
    
    public void setIfTestType(OID newValue) {
     //--AgentGen BEGIN=ifTestEntry::setIfTestType
     //--AgentGen END
      super.setValue(idxIfTestType, newValue);
    }
    
    public Integer32 getIfTestResult() {
     //--AgentGen BEGIN=ifTestEntry::getIfTestResult
     //--AgentGen END
      return (Integer32) super.getValue(idxIfTestResult);
    }  
    
    public void setIfTestResult(Integer32 newValue) {
     //--AgentGen BEGIN=ifTestEntry::setIfTestResult
     //--AgentGen END
      super.setValue(idxIfTestResult, newValue);
    }
    
    public OID getIfTestCode() {
     //--AgentGen BEGIN=ifTestEntry::getIfTestCode
     //--AgentGen END
      return (OID) super.getValue(idxIfTestCode);
    }  
    
    public void setIfTestCode(OID newValue) {
     //--AgentGen BEGIN=ifTestEntry::setIfTestCode
     //--AgentGen END
      super.setValue(idxIfTestCode, newValue);
    }
    
    public OctetString getIfTestOwner() {
     //--AgentGen BEGIN=ifTestEntry::getIfTestOwner
     //--AgentGen END
      return (OctetString) super.getValue(idxIfTestOwner);
    }  
    
    public void setIfTestOwner(OctetString newValue) {
     //--AgentGen BEGIN=ifTestEntry::setIfTestOwner
     //--AgentGen END
      super.setValue(idxIfTestOwner, newValue);
    }
    
    public Variable getValue(int column) {
     //--AgentGen BEGIN=ifTestEntry::RowGetValue
     //--AgentGen END
      switch(column) {
        case idxIfTestId: 
        	return getIfTestId();
        case idxIfTestStatus: 
        	return getIfTestStatus();
        case idxIfTestType: 
        	return getIfTestType();
        case idxIfTestResult: 
        	return getIfTestResult();
        case idxIfTestCode: 
        	return getIfTestCode();
        case idxIfTestOwner: 
        	return getIfTestOwner();
        default:
          return super.getValue(column);
      }
    }
    
    public void setValue(int column, Variable value) {
     //--AgentGen BEGIN=ifTestEntry::RowSetValue
     //--AgentGen END
      switch(column) {
        case idxIfTestId: 
        	setIfTestId((Integer32)value);
        	break;
        case idxIfTestStatus: 
        	setIfTestStatus((Integer32)value);
        	break;
        case idxIfTestType: 
        	setIfTestType((OID)value);
        	break;
        case idxIfTestResult: 
        	setIfTestResult((Integer32)value);
        	break;
        case idxIfTestCode: 
        	setIfTestCode((OID)value);
        	break;
        case idxIfTestOwner: 
        	setIfTestOwner((OctetString)value);
        	break;
        default:
          super.setValue(column, value);
      }
    }

     //--AgentGen BEGIN=ifTestEntry::Row
     //--AgentGen END
  }
  
  class IfTestEntryRowFactory 
        extends DefaultMOMutableRow2PCFactory<IfTestEntryRow>
  {
    public synchronized IfTestEntryRow createRow(OID index, Variable[] values)
        throws UnsupportedOperationException 
    {
      IfTestEntryRow row = 
        new IfTestEntryRow(index, values);
     //--AgentGen BEGIN=ifTestEntry::createRow
     //--AgentGen END
      return row;
    }
    
    public synchronized void freeRow(IfTestEntryRow row) {
     //--AgentGen BEGIN=ifTestEntry::freeRow
     //--AgentGen END
    }

     //--AgentGen BEGIN=ifTestEntry::RowFactory
     //--AgentGen END
  }

  public class IfRcvAddressEntryRow extends DefaultMOMutableRow2PC {

     //--AgentGen BEGIN=ifRcvAddressEntry::RowMembers
     //--AgentGen END

    public IfRcvAddressEntryRow(OID index, Variable[] values) {
      super(index, values);
     //--AgentGen BEGIN=ifRcvAddressEntry::RowConstructor
     //--AgentGen END
    }
    
    public Integer32 getIfRcvAddressStatus() {
     //--AgentGen BEGIN=ifRcvAddressEntry::getIfRcvAddressStatus
     //--AgentGen END
      return (Integer32) super.getValue(idxIfRcvAddressStatus);
    }  
    
    public void setIfRcvAddressStatus(Integer32 newValue) {
     //--AgentGen BEGIN=ifRcvAddressEntry::setIfRcvAddressStatus
     //--AgentGen END
      super.setValue(idxIfRcvAddressStatus, newValue);
    }
    
    public Integer32 getIfRcvAddressType() {
     //--AgentGen BEGIN=ifRcvAddressEntry::getIfRcvAddressType
     //--AgentGen END
      return (Integer32) super.getValue(idxIfRcvAddressType);
    }  
    
    public void setIfRcvAddressType(Integer32 newValue) {
     //--AgentGen BEGIN=ifRcvAddressEntry::setIfRcvAddressType
     //--AgentGen END
      super.setValue(idxIfRcvAddressType, newValue);
    }
    
    public Variable getValue(int column) {
     //--AgentGen BEGIN=ifRcvAddressEntry::RowGetValue
     //--AgentGen END
      switch(column) {
        case idxIfRcvAddressStatus: 
        	return getIfRcvAddressStatus();
        case idxIfRcvAddressType: 
        	return getIfRcvAddressType();
        default:
          return super.getValue(column);
      }
    }
    
    public void setValue(int column, Variable value) {
     //--AgentGen BEGIN=ifRcvAddressEntry::RowSetValue
     //--AgentGen END
      switch(column) {
        case idxIfRcvAddressStatus: 
        	setIfRcvAddressStatus((Integer32)value);
        	break;
        case idxIfRcvAddressType: 
        	setIfRcvAddressType((Integer32)value);
        	break;
        default:
          super.setValue(column, value);
      }
    }

     //--AgentGen BEGIN=ifRcvAddressEntry::Row
     //--AgentGen END
  }
  
  class IfRcvAddressEntryRowFactory 
        extends DefaultMOMutableRow2PCFactory<IfRcvAddressEntryRow>
  {
    public synchronized IfRcvAddressEntryRow createRow(OID index, Variable[] values)
        throws UnsupportedOperationException 
    {
      IfRcvAddressEntryRow row = 
        new IfRcvAddressEntryRow(index, values);
     //--AgentGen BEGIN=ifRcvAddressEntry::createRow
     //--AgentGen END
      return row;
    }
    
    public synchronized void freeRow(IfRcvAddressEntryRow row) {
     //--AgentGen BEGIN=ifRcvAddressEntry::freeRow
     //--AgentGen END
    }

     //--AgentGen BEGIN=ifRcvAddressEntry::RowFactory
     //--AgentGen END
  }


//--AgentGen BEGIN=_METHODS
//--AgentGen END

  // Textual Definitions of MIB module IfMib
  protected void addTCsToFactory(MOFactory moFactory) {
   moFactory.addTextualConvention(new OwnerString()); 
   moFactory.addTextualConvention(new InterfaceIndex()); 
  }


  public class OwnerString implements TextualConvention {
  	
    public OwnerString() {
    }

    public String getModuleName() {
      return TC_MODULE_IF_MIB;
    }
  	
    public String getName() {
      return TC_OWNERSTRING;
    }
    
    public Variable createInitialValue() {
    	Variable v = new OctetString();
      if (v instanceof AssignableFromLong) {
      	((AssignableFromLong)v).setValue(0L);
      }
    	// further modify value to comply with TC constraints here:
     //--AgentGen BEGIN=OwnerString::createInitialValue
     //--AgentGen END
	    return v;
    }
  	
    public MOScalar createScalar(OID oid, MOAccess access, Variable value) {
      MOScalar scalar = moFactory.createScalar(oid, access, value);
      ValueConstraint vc = new ConstraintsImpl();
      ((ConstraintsImpl)vc).add(new Constraint(0L, 255L));
      scalar.addMOValueValidationListener(new ValueConstraintValidator(vc));                                  
     //--AgentGen BEGIN=OwnerString::createScalar
     //--AgentGen END
      return scalar;
    }
  	
    public MOColumn createColumn(int columnID, int syntax, MOAccess access,
                                 Variable defaultValue, boolean mutableInService) {
      MOColumn col = moFactory.createColumn(columnID, syntax, access, 
                                            defaultValue, mutableInService);
      if (col instanceof MOMutableColumn) {
        MOMutableColumn mcol = (MOMutableColumn)col;
        ValueConstraint vc = new ConstraintsImpl();
        ((ConstraintsImpl)vc).add(new Constraint(0L, 255L));
        mcol.addMOValueValidationListener(new ValueConstraintValidator(vc));                                  
      }
     //--AgentGen BEGIN=OwnerString::createColumn
     //--AgentGen END
      return col;      
    }
  }


  public class InterfaceIndex implements TextualConvention {
  	
    public InterfaceIndex() {
    }

    public String getModuleName() {
      return TC_MODULE_IF_MIB;
    }
  	
    public String getName() {
      return TC_INTERFACEINDEX;
    }
    
    public Variable createInitialValue() {
    	Variable v = new Integer32();
      if (v instanceof AssignableFromLong) {
      	((AssignableFromLong)v).setValue(1L);
      }
    	// further modify value to comply with TC constraints here:
     //--AgentGen BEGIN=InterfaceIndex::createInitialValue
     //--AgentGen END
	    return v;
    }
  	
    public MOScalar createScalar(OID oid, MOAccess access, Variable value) {
      MOScalar scalar = moFactory.createScalar(oid, access, value);
      ValueConstraint vc = new ConstraintsImpl();
      ((ConstraintsImpl)vc).add(new Constraint(1L, 2147483647L));
      scalar.addMOValueValidationListener(new ValueConstraintValidator(vc));                                  
     //--AgentGen BEGIN=InterfaceIndex::createScalar
     //--AgentGen END
      return scalar;
    }
  	
    public MOColumn createColumn(int columnID, int syntax, MOAccess access,
                                 Variable defaultValue, boolean mutableInService) {
      MOColumn col = moFactory.createColumn(columnID, syntax, access, 
                                            defaultValue, mutableInService);
      if (col instanceof MOMutableColumn) {
        MOMutableColumn mcol = (MOMutableColumn)col;
        ValueConstraint vc = new ConstraintsImpl();
        ((ConstraintsImpl)vc).add(new Constraint(1L, 2147483647L));
        mcol.addMOValueValidationListener(new ValueConstraintValidator(vc));                                  
      }
     //--AgentGen BEGIN=InterfaceIndex::createColumn
     //--AgentGen END
      return col;      
    }
  }


//--AgentGen BEGIN=_TC_CLASSES_IMPORTED_MODULES_BEGIN
//--AgentGen END

  // Textual Definitions of other MIB modules
  public void addImportedTCsToFactory(MOFactory moFactory) {
   moFactory.addTextualConvention(new PhysAddress()); 
   moFactory.addTextualConvention(new IANAifType()); 
  }

  // Textual Convention PhysAddress from MIB module SNMPv2-TC

  public class PhysAddress implements TextualConvention {
  	
    public PhysAddress() {
    }

    public String getModuleName() {
      return TC_MODULE_SNMPV2_TC;
    }
  	
    public String getName() {
      return TC_PHYSADDRESS;
    }
    
    public Variable createInitialValue() {
    	Variable v = new OctetString();
    	// further modify value to comply with TC constraints here:
     //--AgentGen BEGIN=PhysAddress::createInitialValue
     //--AgentGen END
	    return v;
    }
  	
    public MOScalar createScalar(OID oid, MOAccess access, Variable value) {
      MOScalar scalar = moFactory.createScalar(oid, access, value);
     //--AgentGen BEGIN=PhysAddress::createScalar
     //--AgentGen END
      return scalar;
    }
  	
    public MOColumn createColumn(int columnID, int syntax, MOAccess access,
                                 Variable defaultValue, boolean mutableInService) {
      MOColumn col = moFactory.createColumn(columnID, syntax, access, 
                                            defaultValue, mutableInService);
     //--AgentGen BEGIN=PhysAddress::createColumn
     //--AgentGen END
      return col;      
    }
  }

  // Textual Convention IANAifType from MIB module IANAifType-MIB

  public class IANAifType implements TextualConvention {
    /* -- none of the following */
    public static final int other = 1;
    public static final int regular1822 = 2;
    public static final int hdh1822 = 3;
    public static final int ddnX25 = 4;
    public static final int rfc877x25 = 5;
    /* -- for all ethernet-like interfaces,
-- regardless of speed, as per RFC3635 */
    public static final int ethernetCsmacd = 6;
    /* -- Deprecated via RFC3635
-- ethernetCsmacd (6) should be used instead */
    public static final int iso88023Csmacd = 7;
    public static final int iso88024TokenBus = 8;
    public static final int iso88025TokenRing = 9;
    public static final int iso88026Man = 10;
    /* -- Deprecated via RFC3635
-- ethernetCsmacd (6) should be used instead */
    public static final int starLan = 11;
    public static final int proteon10Mbit = 12;
    public static final int proteon80Mbit = 13;
    public static final int hyperchannel = 14;
    public static final int fddi = 15;
    public static final int lapb = 16;
    public static final int sdlc = 17;
    /* -- DS1-MIB */
    public static final int ds1 = 18;
    /* -- Obsolete see DS1-MIB */
    public static final int e1 = 19;
    /* -- no longer used
-- see also RFC2127 */
    public static final int basicISDN = 20;
    /* -- no longer used
-- see also RFC2127 */
    public static final int primaryISDN = 21;
    /* -- proprietary serial */
    public static final int propPointToPointSerial = 22;
    public static final int ppp = 23;
    public static final int softwareLoopback = 24;
    /* -- CLNP over IP */
    public static final int eon = 25;
    public static final int ethernet3Mbit = 26;
    /* -- XNS over IP */
    public static final int nsip = 27;
    /* -- generic SLIP */
    public static final int slip = 28;
    /* -- ULTRA technologies */
    public static final int ultra = 29;
    /* -- DS3-MIB */
    public static final int ds3 = 30;
    /* -- SMDS, coffee */
    public static final int sip = 31;
    /* -- DTE only. */
    public static final int frameRelay = 32;
    public static final int rs232 = 33;
    /* -- parallel-port */
    public static final int para = 34;
    /* -- arcnet */
    public static final int arcnet = 35;
    /* -- arcnet plus */
    public static final int arcnetPlus = 36;
    /* -- ATM cells */
    public static final int atm = 37;
    public static final int miox25 = 38;
    /* -- SONET or SDH */
    public static final int sonet = 39;
    public static final int x25ple = 40;
    public static final int iso88022llc = 41;
    public static final int localTalk = 42;
    public static final int smdsDxi = 43;
    /* -- FRNETSERV-MIB */
    public static final int frameRelayService = 44;
    public static final int v35 = 45;
    public static final int hssi = 46;
    public static final int hippi = 47;
    /* -- Generic modem */
    public static final int modem = 48;
    /* -- AAL5 over ATM */
    public static final int aal5 = 49;
    public static final int sonetPath = 50;
    public static final int sonetVT = 51;
    /* -- SMDS InterCarrier Interface */
    public static final int smdsIcip = 52;
    /* -- proprietary virtual/internal */
    public static final int propVirtual = 53;
    /* -- proprietary multiplexing */
    public static final int propMultiplexor = 54;
    /* -- 100BaseVG */
    public static final int ieee80212 = 55;
    /* -- Fibre Channel */
    public static final int fibreChannel = 56;
    /* -- HIPPI interfaces */
    public static final int hippiInterface = 57;
    /* -- Obsolete use either
-- frameRelay(32) or 
-- frameRelayService(44). */
    public static final int frameRelayInterconnect = 58;
    /* -- ATM Emulated LAN for 802.3 */
    public static final int aflane8023 = 59;
    /* -- ATM Emulated LAN for 802.5 */
    public static final int aflane8025 = 60;
    /* -- ATM Emulated circuit */
    public static final int cctEmul = 61;
    /* -- Obsoleted via RFC3635
-- ethernetCsmacd (6) should be used instead */
    public static final int fastEther = 62;
    /* -- ISDN and X.25 */
    public static final int isdn = 63;
    /* -- CCITT V.11/X.21 */
    public static final int v11 = 64;
    /* -- CCITT V.36 */
    public static final int v36 = 65;
    /* -- CCITT G703 at 64Kbps */
    public static final int g703at64k = 66;
    /* -- Obsolete see DS1-MIB */
    public static final int g703at2mb = 67;
    /* -- SNA QLLC */
    public static final int qllc = 68;
    /* -- Obsoleted via RFC3635
-- ethernetCsmacd (6) should be used instead */
    public static final int fastEtherFX = 69;
    /* -- channel */
    public static final int channel = 70;
    /* -- radio spread spectrum */
    public static final int ieee80211 = 71;
    /* -- IBM System 360/370 OEMI Channel */
    public static final int ibm370parChan = 72;
    /* -- IBM Enterprise Systems Connection */
    public static final int escon = 73;
    /* -- Data Link Switching */
    public static final int dlsw = 74;
    /* -- ISDN S/T interface */
    public static final int isdns = 75;
    /* -- ISDN U interface */
    public static final int isdnu = 76;
    /* -- Link Access Protocol D */
    public static final int lapd = 77;
    /* -- IP Switching Objects */
    public static final int ipSwitch = 78;
    /* -- Remote Source Route Bridging */
    public static final int rsrb = 79;
    /* -- ATM Logical Port */
    public static final int atmLogical = 80;
    /* -- Digital Signal Level 0 */
    public static final int ds0 = 81;
    /* -- group of ds0s on the same ds1 */
    public static final int ds0Bundle = 82;
    /* -- Bisynchronous Protocol */
    public static final int bsc = 83;
    /* -- Asynchronous Protocol */
    public static final int async = 84;
    /* -- Combat Net Radio */
    public static final int cnr = 85;
    /* -- ISO 802.5r DTR */
    public static final int iso88025Dtr = 86;
    /* -- Ext Pos Loc Report Sys */
    public static final int eplrs = 87;
    /* -- Appletalk Remote Access Protocol */
    public static final int arap = 88;
    /* -- Proprietary Connectionless Protocol */
    public static final int propCnls = 89;
    /* -- CCITT-ITU X.29 PAD Protocol */
    public static final int hostPad = 90;
    /* -- CCITT-ITU X.3 PAD Facility */
    public static final int termPad = 91;
    /* -- Multiproto Interconnect over FR */
    public static final int frameRelayMPI = 92;
    /* -- CCITT-ITU X213 */
    public static final int x213 = 93;
    /* -- Asymmetric Digital Subscriber Loop */
    public static final int adsl = 94;
    /* -- Rate-Adapt. Digital Subscriber Loop */
    public static final int radsl = 95;
    /* -- Symmetric Digital Subscriber Loop */
    public static final int sdsl = 96;
    /* -- Very H-Speed Digital Subscrib. Loop */
    public static final int vdsl = 97;
    /* -- ISO 802.5 CRFP */
    public static final int iso88025CRFPInt = 98;
    /* -- Myricom Myrinet */
    public static final int myrinet = 99;
    /* -- voice recEive and transMit */
    public static final int voiceEM = 100;
    /* -- voice Foreign Exchange Office */
    public static final int voiceFXO = 101;
    /* -- voice Foreign Exchange Station */
    public static final int voiceFXS = 102;
    /* -- voice encapsulation */
    public static final int voiceEncap = 103;
    /* -- voice over IP encapsulation */
    public static final int voiceOverIp = 104;
    /* -- ATM DXI */
    public static final int atmDxi = 105;
    /* -- ATM FUNI */
    public static final int atmFuni = 106;
    /* -- ATM IMA */
    public static final int atmIma = 107;
    /* -- PPP Multilink Bundle */
    public static final int pppMultilinkBundle = 108;
    /* -- IBM ipOverCdlc */
    public static final int ipOverCdlc = 109;
    /* -- IBM Common Link Access to Workstn */
    public static final int ipOverClaw = 110;
    /* -- IBM stackToStack */
    public static final int stackToStack = 111;
    /* -- IBM VIPA */
    public static final int virtualIpAddress = 112;
    /* -- IBM multi-protocol channel support */
    public static final int mpc = 113;
    /* -- IBM ipOverAtm */
    public static final int ipOverAtm = 114;
    /* -- ISO 802.5j Fiber Token Ring */
    public static final int iso88025Fiber = 115;
    /* -- IBM twinaxial data link control */
    public static final int tdlc = 116;
    /* -- Obsoleted via RFC3635
-- ethernetCsmacd (6) should be used instead */
    public static final int gigabitEthernet = 117;
    /* -- HDLC */
    public static final int hdlc = 118;
    /* -- LAP F */
    public static final int lapf = 119;
    /* -- V.37 */
    public static final int v37 = 120;
    /* -- Multi-Link Protocol */
    public static final int x25mlp = 121;
    /* -- X25 Hunt Group */
    public static final int x25huntGroup = 122;
    /* -- Transp HDLC */
    public static final int trasnpHdlc = 123;
    /* -- Interleave channel */
    public static final int interleave = 124;
    /* -- Fast channel */
    public static final int fast = 125;
    /* -- IP (for APPN HPR in IP networks) */
    public static final int ip = 126;
    /* -- CATV Mac Layer */
    public static final int docsCableMaclayer = 127;
    /* -- CATV Downstream interface */
    public static final int docsCableDownstream = 128;
    /* -- CATV Upstream interface */
    public static final int docsCableUpstream = 129;
    /* -- Avalon Parallel Processor */
    public static final int a12MppSwitch = 130;
    /* -- Encapsulation interface */
    public static final int tunnel = 131;
    /* -- coffee pot */
    public static final int coffee = 132;
    /* -- Circuit Emulation Service */
    public static final int ces = 133;
    /* -- ATM Sub Interface */
    public static final int atmSubInterface = 134;
    /* -- Layer 2 Virtual LAN using 802.1Q */
    public static final int l2vlan = 135;
    /* -- Layer 3 Virtual LAN using IP */
    public static final int l3ipvlan = 136;
    /* -- Layer 3 Virtual LAN using IPX */
    public static final int l3ipxvlan = 137;
    /* -- IP over Power Lines */
    public static final int digitalPowerline = 138;
    /* -- Multimedia Mail over IP */
    public static final int mediaMailOverIp = 139;
    /* -- Dynamic syncronous Transfer Mode */
    public static final int dtm = 140;
    /* -- Data Communications Network */
    public static final int dcn = 141;
    /* -- IP Forwarding Interface */
    public static final int ipForward = 142;
    /* -- Multi-rate Symmetric DSL */
    public static final int msdsl = 143;
    /* -- IEEE1394 High Performance Serial Bus */
    public static final int ieee1394 = 144;
    /* --   HIPPI-6400 */
    public static final int if_gsn = 145;
    /* -- DVB-RCC MAC Layer */
    public static final int dvbRccMacLayer = 146;
    /* -- DVB-RCC Downstream Channel */
    public static final int dvbRccDownstream = 147;
    /* -- DVB-RCC Upstream Channel */
    public static final int dvbRccUpstream = 148;
    /* -- ATM Virtual Interface */
    public static final int atmVirtual = 149;
    /* -- MPLS Tunnel Virtual Interface */
    public static final int mplsTunnel = 150;
    /* -- Spatial Reuse Protocol */
    public static final int srp = 151;
    /* -- Voice Over ATM */
    public static final int voiceOverAtm = 152;
    /* -- Voice Over Frame Relay */
    public static final int voiceOverFrameRelay = 153;
    /* -- Digital Subscriber Loop over ISDN */
    public static final int idsl = 154;
    /* -- Avici Composite Link Interface */
    public static final int compositeLink = 155;
    /* -- SS7 Signaling Link */
    public static final int ss7SigLink = 156;
    /* --  Prop. P2P wireless interface */
    public static final int propWirelessP2P = 157;
    /* -- Frame Forward Interface */
    public static final int frForward = 158;
    /* -- Multiprotocol over ATM AAL5 */
    public static final int rfc1483 = 159;
    /* -- USB Interface */
    public static final int usb = 160;
    /* -- IEEE 802.3ad Link Aggregate */
    public static final int ieee8023adLag = 161;
    /* -- BGP Policy Accounting */
    public static final int bgppolicyaccounting = 162;
    /* -- FRF .16 Multilink Frame Relay */
    public static final int frf16MfrBundle = 163;
    /* -- H323 Gatekeeper */
    public static final int h323Gatekeeper = 164;
    /* -- H323 Voice and Video Proxy */
    public static final int h323Proxy = 165;
    /* -- MPLS */
    public static final int mpls = 166;
    /* -- Multi-frequency signaling link */
    public static final int mfSigLink = 167;
    /* -- High Bit-Rate DSL - 2nd generation */
    public static final int hdsl2 = 168;
    /* -- Multirate HDSL2 */
    public static final int shdsl = 169;
    /* -- Facility Data Link 4Kbps on a DS1 */
    public static final int ds1FDL = 170;
    /* -- Packet over SONET/SDH Interface */
    public static final int pos = 171;
    /* -- DVB-ASI Input */
    public static final int dvbAsiIn = 172;
    /* -- DVB-ASI Output */
    public static final int dvbAsiOut = 173;
    /* -- Power Line Communtications */
    public static final int plc = 174;
    /* -- Non Facility Associated Signaling */
    public static final int nfas = 175;
    /* -- TR008 */
    public static final int tr008 = 176;
    /* -- Remote Digital Terminal */
    public static final int gr303RDT = 177;
    /* -- Integrated Digital Terminal */
    public static final int gr303IDT = 178;
    /* -- ISUP */
    public static final int isup = 179;
    /* -- Cisco proprietary Maclayer */
    public static final int propDocsWirelessMaclayer = 180;
    /* -- Cisco proprietary Downstream */
    public static final int propDocsWirelessDownstream = 181;
    /* -- Cisco proprietary Upstream */
    public static final int propDocsWirelessUpstream = 182;
    /* -- HIPERLAN Type 2 Radio Interface */
    public static final int hiperlan2 = 183;
    /* -- PropBroadbandWirelessAccesspt2multipt
-- use of this iftype for IEEE 802.16 WMAN
-- interfaces as per IEEE Std 802.16f is
-- deprecated and ifType 237 should be used instead. */
    public static final int propBWAp2Mp = 184;
    /* -- SONET Overhead Channel */
    public static final int sonetOverheadChannel = 185;
    /* -- Digital Wrapper */
    public static final int digitalWrapperOverheadChannel = 186;
    /* -- ATM adaptation layer 2 */
    public static final int aal2 = 187;
    /* -- MAC layer over radio links */
    public static final int radioMAC = 188;
    /* -- ATM over radio links */
    public static final int atmRadio = 189;
    /* -- Inter Machine Trunks */
    public static final int imt = 190;
    /* -- Multiple Virtual Lines DSL */
    public static final int mvl = 191;
    /* -- Long Reach DSL */
    public static final int reachDSL = 192;
    /* -- Frame Relay DLCI End Point */
    public static final int frDlciEndPt = 193;
    /* -- ATM VCI End Point */
    public static final int atmVciEndPt = 194;
    /* -- Optical Channel */
    public static final int opticalChannel = 195;
    /* -- Optical Transport */
    public static final int opticalTransport = 196;
    /* --  Proprietary ATM */
    public static final int propAtm = 197;
    /* -- Voice Over Cable Interface */
    public static final int voiceOverCable = 198;
    /* -- Infiniband */
    public static final int infiniband = 199;
    /* -- TE Link */
    public static final int teLink = 200;
    /* -- Q.2931 */
    public static final int q2931 = 201;
    /* -- Virtual Trunk Group */
    public static final int virtualTg = 202;
    /* -- SIP Trunk Group */
    public static final int sipTg = 203;
    /* -- SIP Signaling */
    public static final int sipSig = 204;
    /* -- CATV Upstream Channel */
    public static final int docsCableUpstreamChannel = 205;
    /* -- Acorn Econet */
    public static final int econet = 206;
    /* -- FSAN 155Mb Symetrical PON interface */
    public static final int pon155 = 207;
    /* -- FSAN622Mb Symetrical PON interface */
    public static final int pon622 = 208;
    /* -- Transparent bridge interface */
    public static final int bridge = 209;
    /* -- Interface common to multiple lines */
    public static final int linegroup = 210;
    /* -- voice E&M Feature Group D */
    public static final int voiceEMFGD = 211;
    /* -- voice FGD Exchange Access North American */
    public static final int voiceFGDEANA = 212;
    /* -- voice Direct Inward Dialing */
    public static final int voiceDID = 213;
    /* -- MPEG transport interface */
    public static final int mpegTransport = 214;
    /* -- 6to4 interface (DEPRECATED) */
    public static final int sixToFour = 215;
    /* -- GTP (GPRS Tunneling Protocol) */
    public static final int gtp = 216;
    /* -- Paradyne EtherLoop 1 */
    public static final int pdnEtherLoop1 = 217;
    /* -- Paradyne EtherLoop 2 */
    public static final int pdnEtherLoop2 = 218;
    /* -- Optical Channel Group */
    public static final int opticalChannelGroup = 219;
    /* -- HomePNA ITU-T G.989 */
    public static final int homepna = 220;
    /* -- Generic Framing Procedure (GFP) */
    public static final int gfp = 221;
    /* -- Layer 2 Virtual LAN using Cisco ISL */
    public static final int ciscoISLvlan = 222;
    /* -- Acteleis proprietary MetaLOOP High Speed Link */
    public static final int actelisMetaLOOP = 223;
    /* -- FCIP Link */
    public static final int fcipLink = 224;
    /* -- Resilient Packet Ring Interface Type */
    public static final int rpr = 225;
    /* -- RF Qam Interface */
    public static final int qam = 226;
    /* -- Link Management Protocol */
    public static final int lmp = 227;
    /* -- Cambridge Broadband Networks Limited VectaStar */
    public static final int cblVectaStar = 228;
    /* -- CATV Modular CMTS Downstream Interface */
    public static final int docsCableMCmtsDownstream = 229;
    /* -- Asymmetric Digital Subscriber Loop Version 2 
-- (DEPRECATED/OBSOLETED - please use adsl2plus 238 instead) */
    public static final int adsl2 = 230;
    /* -- MACSecControlled */
    public static final int macSecControlledIF = 231;
    /* -- MACSecUncontrolled */
    public static final int macSecUncontrolledIF = 232;
    /* -- Avici Optical Ethernet Aggregate */
    public static final int aviciOpticalEther = 233;
    /* -- atmbond */
    public static final int atmbond = 234;
    /* -- voice FGD Operator Services */
    public static final int voiceFGDOS = 235;
    /* -- MultiMedia over Coax Alliance (MoCA) Interface
-- as documented in information provided privately to IANA */
    public static final int mocaVersion1 = 236;
    /* -- IEEE 802.16 WMAN interface */
    public static final int ieee80216WMAN = 237;
    /* -- Asymmetric Digital Subscriber Loop Version 2, 
-- Version 2 Plus and all variants */
    public static final int adsl2plus = 238;
    /* -- DVB-RCS MAC Layer */
    public static final int dvbRcsMacLayer = 239;
    /* -- DVB Satellite TDM */
    public static final int dvbTdm = 240;
    /* -- DVB-RCS TDMA */
    public static final int dvbRcsTdma = 241;
    /* -- LAPS based on ITU-T X.86/Y.1323 */
    public static final int x86Laps = 242;
    /* -- 3GPP WWAN */
    public static final int wwanPP = 243;
    /* -- 3GPP2 WWAN */
    public static final int wwanPP2 = 244;
  	
    public IANAifType() {
    }

    public String getModuleName() {
      return TC_MODULE_IANAIFTYPE_MIB;
    }
  	
    public String getName() {
      return TC_IANAIFTYPE;
    }
    
    public Variable createInitialValue() {
    	Variable v = new Integer32();
      if (v instanceof AssignableFromLong) {
        ((AssignableFromLong)v).setValue(1);
      }
    	// further modify value to comply with TC constraints here:
     //--AgentGen BEGIN=IANAifType::createInitialValue
     //--AgentGen END
	    return v;
    }
  	
    public MOScalar createScalar(OID oid, MOAccess access, Variable value) {
      MOScalar scalar = moFactory.createScalar(oid, access, value);
      ValueConstraint vc = new EnumerationConstraint(
        new int[] { other,
                    regular1822,
                    hdh1822,
                    ddnX25,
                    rfc877x25,
                    ethernetCsmacd,
                    iso88023Csmacd,
                    iso88024TokenBus,
                    iso88025TokenRing,
                    iso88026Man,
                    starLan,
                    proteon10Mbit,
                    proteon80Mbit,
                    hyperchannel,
                    fddi,
                    lapb,
                    sdlc,
                    ds1,
                    e1,
                    basicISDN,
                    primaryISDN,
                    propPointToPointSerial,
                    ppp,
                    softwareLoopback,
                    eon,
                    ethernet3Mbit,
                    nsip,
                    slip,
                    ultra,
                    ds3,
                    sip,
                    frameRelay,
                    rs232,
                    para,
                    arcnet,
                    arcnetPlus,
                    atm,
                    miox25,
                    sonet,
                    x25ple,
                    iso88022llc,
                    localTalk,
                    smdsDxi,
                    frameRelayService,
                    v35,
                    hssi,
                    hippi,
                    modem,
                    aal5,
                    sonetPath,
                    sonetVT,
                    smdsIcip,
                    propVirtual,
                    propMultiplexor,
                    ieee80212,
                    fibreChannel,
                    hippiInterface,
                    frameRelayInterconnect,
                    aflane8023,
                    aflane8025,
                    cctEmul,
                    fastEther,
                    isdn,
                    v11,
                    v36,
                    g703at64k,
                    g703at2mb,
                    qllc,
                    fastEtherFX,
                    channel,
                    ieee80211,
                    ibm370parChan,
                    escon,
                    dlsw,
                    isdns,
                    isdnu,
                    lapd,
                    ipSwitch,
                    rsrb,
                    atmLogical,
                    ds0,
                    ds0Bundle,
                    bsc,
                    async,
                    cnr,
                    iso88025Dtr,
                    eplrs,
                    arap,
                    propCnls,
                    hostPad,
                    termPad,
                    frameRelayMPI,
                    x213,
                    adsl,
                    radsl,
                    sdsl,
                    vdsl,
                    iso88025CRFPInt,
                    myrinet,
                    voiceEM,
                    voiceFXO,
                    voiceFXS,
                    voiceEncap,
                    voiceOverIp,
                    atmDxi,
                    atmFuni,
                    atmIma,
                    pppMultilinkBundle,
                    ipOverCdlc,
                    ipOverClaw,
                    stackToStack,
                    virtualIpAddress,
                    mpc,
                    ipOverAtm,
                    iso88025Fiber,
                    tdlc,
                    gigabitEthernet,
                    hdlc,
                    lapf,
                    v37,
                    x25mlp,
                    x25huntGroup,
                    trasnpHdlc,
                    interleave,
                    fast,
                    ip,
                    docsCableMaclayer,
                    docsCableDownstream,
                    docsCableUpstream,
                    a12MppSwitch,
                    tunnel,
                    coffee,
                    ces,
                    atmSubInterface,
                    l2vlan,
                    l3ipvlan,
                    l3ipxvlan,
                    digitalPowerline,
                    mediaMailOverIp,
                    dtm,
                    dcn,
                    ipForward,
                    msdsl,
                    ieee1394,
                    if_gsn,
                    dvbRccMacLayer,
                    dvbRccDownstream,
                    dvbRccUpstream,
                    atmVirtual,
                    mplsTunnel,
                    srp,
                    voiceOverAtm,
                    voiceOverFrameRelay,
                    idsl,
                    compositeLink,
                    ss7SigLink,
                    propWirelessP2P,
                    frForward,
                    rfc1483,
                    usb,
                    ieee8023adLag,
                    bgppolicyaccounting,
                    frf16MfrBundle,
                    h323Gatekeeper,
                    h323Proxy,
                    mpls,
                    mfSigLink,
                    hdsl2,
                    shdsl,
                    ds1FDL,
                    pos,
                    dvbAsiIn,
                    dvbAsiOut,
                    plc,
                    nfas,
                    tr008,
                    gr303RDT,
                    gr303IDT,
                    isup,
                    propDocsWirelessMaclayer,
                    propDocsWirelessDownstream,
                    propDocsWirelessUpstream,
                    hiperlan2,
                    propBWAp2Mp,
                    sonetOverheadChannel,
                    digitalWrapperOverheadChannel,
                    aal2,
                    radioMAC,
                    atmRadio,
                    imt,
                    mvl,
                    reachDSL,
                    frDlciEndPt,
                    atmVciEndPt,
                    opticalChannel,
                    opticalTransport,
                    propAtm,
                    voiceOverCable,
                    infiniband,
                    teLink,
                    q2931,
                    virtualTg,
                    sipTg,
                    sipSig,
                    docsCableUpstreamChannel,
                    econet,
                    pon155,
                    pon622,
                    bridge,
                    linegroup,
                    voiceEMFGD,
                    voiceFGDEANA,
                    voiceDID,
                    mpegTransport,
                    sixToFour,
                    gtp,
                    pdnEtherLoop1,
                    pdnEtherLoop2,
                    opticalChannelGroup,
                    homepna,
                    gfp,
                    ciscoISLvlan,
                    actelisMetaLOOP,
                    fcipLink,
                    rpr,
                    qam,
                    lmp,
                    cblVectaStar,
                    docsCableMCmtsDownstream,
                    adsl2,
                    macSecControlledIF,
                    macSecUncontrolledIF,
                    aviciOpticalEther,
                    atmbond,
                    voiceFGDOS,
                    mocaVersion1,
                    ieee80216WMAN,
                    adsl2plus,
                    dvbRcsMacLayer,
                    dvbTdm,
                    dvbRcsTdma,
                    x86Laps,
                    wwanPP,
                    wwanPP2 });
      scalar.addMOValueValidationListener(new ValueConstraintValidator(vc));                                  
     //--AgentGen BEGIN=IANAifType::createScalar
     //--AgentGen END
      return scalar;
    }
  	
    public MOColumn createColumn(int columnID, int syntax, MOAccess access,
                                 Variable defaultValue, boolean mutableInService) {
      MOColumn col = moFactory.createColumn(columnID, syntax, access, 
                                            defaultValue, mutableInService);
      if (col instanceof MOMutableColumn) {
        MOMutableColumn mcol = (MOMutableColumn)col;
        ValueConstraint vc = new EnumerationConstraint(
          new int[] { other,
                      regular1822,
                      hdh1822,
                      ddnX25,
                      rfc877x25,
                      ethernetCsmacd,
                      iso88023Csmacd,
                      iso88024TokenBus,
                      iso88025TokenRing,
                      iso88026Man,
                      starLan,
                      proteon10Mbit,
                      proteon80Mbit,
                      hyperchannel,
                      fddi,
                      lapb,
                      sdlc,
                      ds1,
                      e1,
                      basicISDN,
                      primaryISDN,
                      propPointToPointSerial,
                      ppp,
                      softwareLoopback,
                      eon,
                      ethernet3Mbit,
                      nsip,
                      slip,
                      ultra,
                      ds3,
                      sip,
                      frameRelay,
                      rs232,
                      para,
                      arcnet,
                      arcnetPlus,
                      atm,
                      miox25,
                      sonet,
                      x25ple,
                      iso88022llc,
                      localTalk,
                      smdsDxi,
                      frameRelayService,
                      v35,
                      hssi,
                      hippi,
                      modem,
                      aal5,
                      sonetPath,
                      sonetVT,
                      smdsIcip,
                      propVirtual,
                      propMultiplexor,
                      ieee80212,
                      fibreChannel,
                      hippiInterface,
                      frameRelayInterconnect,
                      aflane8023,
                      aflane8025,
                      cctEmul,
                      fastEther,
                      isdn,
                      v11,
                      v36,
                      g703at64k,
                      g703at2mb,
                      qllc,
                      fastEtherFX,
                      channel,
                      ieee80211,
                      ibm370parChan,
                      escon,
                      dlsw,
                      isdns,
                      isdnu,
                      lapd,
                      ipSwitch,
                      rsrb,
                      atmLogical,
                      ds0,
                      ds0Bundle,
                      bsc,
                      async,
                      cnr,
                      iso88025Dtr,
                      eplrs,
                      arap,
                      propCnls,
                      hostPad,
                      termPad,
                      frameRelayMPI,
                      x213,
                      adsl,
                      radsl,
                      sdsl,
                      vdsl,
                      iso88025CRFPInt,
                      myrinet,
                      voiceEM,
                      voiceFXO,
                      voiceFXS,
                      voiceEncap,
                      voiceOverIp,
                      atmDxi,
                      atmFuni,
                      atmIma,
                      pppMultilinkBundle,
                      ipOverCdlc,
                      ipOverClaw,
                      stackToStack,
                      virtualIpAddress,
                      mpc,
                      ipOverAtm,
                      iso88025Fiber,
                      tdlc,
                      gigabitEthernet,
                      hdlc,
                      lapf,
                      v37,
                      x25mlp,
                      x25huntGroup,
                      trasnpHdlc,
                      interleave,
                      fast,
                      ip,
                      docsCableMaclayer,
                      docsCableDownstream,
                      docsCableUpstream,
                      a12MppSwitch,
                      tunnel,
                      coffee,
                      ces,
                      atmSubInterface,
                      l2vlan,
                      l3ipvlan,
                      l3ipxvlan,
                      digitalPowerline,
                      mediaMailOverIp,
                      dtm,
                      dcn,
                      ipForward,
                      msdsl,
                      ieee1394,
                      if_gsn,
                      dvbRccMacLayer,
                      dvbRccDownstream,
                      dvbRccUpstream,
                      atmVirtual,
                      mplsTunnel,
                      srp,
                      voiceOverAtm,
                      voiceOverFrameRelay,
                      idsl,
                      compositeLink,
                      ss7SigLink,
                      propWirelessP2P,
                      frForward,
                      rfc1483,
                      usb,
                      ieee8023adLag,
                      bgppolicyaccounting,
                      frf16MfrBundle,
                      h323Gatekeeper,
                      h323Proxy,
                      mpls,
                      mfSigLink,
                      hdsl2,
                      shdsl,
                      ds1FDL,
                      pos,
                      dvbAsiIn,
                      dvbAsiOut,
                      plc,
                      nfas,
                      tr008,
                      gr303RDT,
                      gr303IDT,
                      isup,
                      propDocsWirelessMaclayer,
                      propDocsWirelessDownstream,
                      propDocsWirelessUpstream,
                      hiperlan2,
                      propBWAp2Mp,
                      sonetOverheadChannel,
                      digitalWrapperOverheadChannel,
                      aal2,
                      radioMAC,
                      atmRadio,
                      imt,
                      mvl,
                      reachDSL,
                      frDlciEndPt,
                      atmVciEndPt,
                      opticalChannel,
                      opticalTransport,
                      propAtm,
                      voiceOverCable,
                      infiniband,
                      teLink,
                      q2931,
                      virtualTg,
                      sipTg,
                      sipSig,
                      docsCableUpstreamChannel,
                      econet,
                      pon155,
                      pon622,
                      bridge,
                      linegroup,
                      voiceEMFGD,
                      voiceFGDEANA,
                      voiceDID,
                      mpegTransport,
                      sixToFour,
                      gtp,
                      pdnEtherLoop1,
                      pdnEtherLoop2,
                      opticalChannelGroup,
                      homepna,
                      gfp,
                      ciscoISLvlan,
                      actelisMetaLOOP,
                      fcipLink,
                      rpr,
                      qam,
                      lmp,
                      cblVectaStar,
                      docsCableMCmtsDownstream,
                      adsl2,
                      macSecControlledIF,
                      macSecUncontrolledIF,
                      aviciOpticalEther,
                      atmbond,
                      voiceFGDOS,
                      mocaVersion1,
                      ieee80216WMAN,
                      adsl2plus,
                      dvbRcsMacLayer,
                      dvbTdm,
                      dvbRcsTdma,
                      x86Laps,
                      wwanPP,
                      wwanPP2 });
        mcol.addMOValueValidationListener(new ValueConstraintValidator(vc));                                  
      }
     //--AgentGen BEGIN=IANAifType::createColumn
     //--AgentGen END
      return col;      
    }
  }


//--AgentGen BEGIN=_TC_CLASSES_IMPORTED_MODULES_END
//--AgentGen END

//--AgentGen BEGIN=_CLASSES
//--AgentGen END

//--AgentGen BEGIN=_END
//--AgentGen END
}


